aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTravisBot <>2018-01-10 18:45:08 +0000
committerTravisBot <>2018-01-10 18:45:08 +0000
commit858a9fa99fa8410b69523fa4ed69272015fcf0d3 (patch)
tree129c6fd2a1dff9198c9f812cfec4e4675839be2e
parent16c31def82cec65852f8c75b0e18a5a594be00d2 (diff)
downloadYAGE-858a9fa99fa8410b69523fa4ed69272015fcf0d3.tar.gz
YAGE-858a9fa99fa8410b69523fa4ed69272015fcf0d3.zip
[Travis] Rebuilding documentation
-rw-r--r--README_8md.html38
-rw-r--r--active_8cpp.html44
-rw-r--r--active_8h.html44
-rw-r--r--active_8h_source.html42
-rw-r--r--annotated.html88
-rw-r--r--annotated.js5
-rw-r--r--batch_8h.html54
-rw-r--r--batch_8h_source.html81
-rw-r--r--bc_s.pngbin676 -> 643 bytes
-rw-r--r--bdwn.pngbin147 -> 148 bytes
-rw-r--r--body_8cpp.html44
-rw-r--r--body_8h.html44
-rw-r--r--body_8h_source.html42
-rw-r--r--bug.html37
-rw-r--r--camera_8cpp.html44
-rw-r--r--camera_8h.html44
-rw-r--r--camera_8h_source.html42
-rw-r--r--classComponent.html106
-rw-r--r--classes.html95
-rw-r--r--classyage_1_1Active-members.html41
-rw-r--r--classyage_1_1Active.html42
-rw-r--r--classyage_1_1Active.js9
-rw-r--r--classyage_1_1Batch-members.html41
-rw-r--r--classyage_1_1Batch.html42
-rw-r--r--classyage_1_1Batch.js7
-rw-r--r--classyage_1_1Body-members.html41
-rw-r--r--classyage_1_1Body.html42
-rw-r--r--classyage_1_1Body.js15
-rw-r--r--classyage_1_1Body.pngbin1112 -> 1112 bytes
-rw-r--r--classyage_1_1Camera-members.html41
-rw-r--r--classyage_1_1Camera.html44
-rw-r--r--classyage_1_1Camera.js7
-rw-r--r--classyage_1_1Collider-members.html41
-rw-r--r--classyage_1_1Collider.html42
-rw-r--r--classyage_1_1Collider.js8
-rw-r--r--classyage_1_1Collider.pngbin642 -> 642 bytes
-rw-r--r--classyage_1_1CollisionBody-members.html41
-rw-r--r--classyage_1_1CollisionBody.html42
-rw-r--r--classyage_1_1CollisionBody.js5
-rw-r--r--classyage_1_1CollisionBody.pngbin560 -> 560 bytes
-rw-r--r--classyage_1_1Drawable-members.html41
-rw-r--r--classyage_1_1Drawable.html42
-rw-r--r--classyage_1_1Drawable.js4
-rw-r--r--classyage_1_1Drawable.pngbin772 -> 772 bytes
-rw-r--r--classyage_1_1Engine-members.html113
-rw-r--r--classyage_1_1Engine.html237
-rw-r--r--classyage_1_1Entity-members.html110
-rw-r--r--classyage_1_1Entity.html170
-rw-r--r--classyage_1_1EntityManager-members.html113
-rw-r--r--classyage_1_1EntityManager.html260
-rw-r--r--classyage_1_1ImageLoader-members.html41
-rw-r--r--classyage_1_1ImageLoader.html42
-rw-r--r--classyage_1_1ImageLoader.js4
-rw-r--r--classyage_1_1IoManager-members.html41
-rw-r--r--classyage_1_1IoManager.html42
-rw-r--r--classyage_1_1IoManager.js4
-rw-r--r--classyage_1_1LogMessage-members.html41
-rw-r--r--classyage_1_1LogMessage.html42
-rw-r--r--classyage_1_1LogMessage.js11
-rw-r--r--classyage_1_1LogSink-members.html41
-rw-r--r--classyage_1_1LogSink.html42
-rw-r--r--classyage_1_1LogSink.js10
-rw-r--r--classyage_1_1Logger-members.html41
-rw-r--r--classyage_1_1Logger.html60
-rw-r--r--classyage_1_1Logger.js14
-rw-r--r--classyage_1_1Matrix-members.html41
-rw-r--r--classyage_1_1Matrix.html51
-rw-r--r--classyage_1_1Matrix.js18
-rw-r--r--classyage_1_1ParticleBody-members.html41
-rw-r--r--classyage_1_1ParticleBody.html42
-rw-r--r--classyage_1_1ParticleBody.js6
-rw-r--r--classyage_1_1ParticleBody.pngbin801 -> 801 bytes
-rw-r--r--classyage_1_1Rectangle-members.html41
-rw-r--r--classyage_1_1Rectangle.html42
-rw-r--r--classyage_1_1Rectangle.js5
-rw-r--r--classyage_1_1Rectangle.pngbin764 -> 764 bytes
-rw-r--r--classyage_1_1RectangleCollider-members.html41
-rw-r--r--classyage_1_1RectangleCollider.html42
-rw-r--r--classyage_1_1RectangleCollider.js6
-rw-r--r--classyage_1_1RectangleCollider.pngbin645 -> 645 bytes
-rw-r--r--classyage_1_1ResourceManager-members.html41
-rw-r--r--classyage_1_1ResourceManager.html42
-rw-r--r--classyage_1_1ResourceManager.js4
-rw-r--r--classyage_1_1RigidBody-members.html41
-rw-r--r--classyage_1_1RigidBody.html42
-rw-r--r--classyage_1_1RigidBody.js4
-rw-r--r--classyage_1_1RigidBody.pngbin796 -> 796 bytes
-rw-r--r--classyage_1_1Shader-members.html41
-rw-r--r--classyage_1_1Shader.html42
-rw-r--r--classyage_1_1Shader.js13
-rw-r--r--classyage_1_1Shape-members.html41
-rw-r--r--classyage_1_1Shape.html42
-rw-r--r--classyage_1_1Shape.js4
-rw-r--r--classyage_1_1Shape.pngbin767 -> 767 bytes
-rw-r--r--classyage_1_1Space-members.html110
-rw-r--r--classyage_1_1Space.html167
-rw-r--r--classyage_1_1Sprite-members.html41
-rw-r--r--classyage_1_1Sprite.html42
-rw-r--r--classyage_1_1Sprite.js11
-rw-r--r--classyage_1_1SpriteBatch-members.html41
-rw-r--r--classyage_1_1SpriteBatch.html42
-rw-r--r--classyage_1_1SpriteBatch.js14
-rw-r--r--classyage_1_1SpriteSheet-members.html41
-rw-r--r--classyage_1_1SpriteSheet.html42
-rw-r--r--classyage_1_1SpriteSheet.js6
-rw-r--r--classyage_1_1SyncQueue-members.html41
-rw-r--r--classyage_1_1SyncQueue.html42
-rw-r--r--classyage_1_1SyncQueue.js10
-rw-r--r--classyage_1_1System-members.html111
-rw-r--r--classyage_1_1System.html218
-rw-r--r--classyage_1_1TextureCache-members.html41
-rw-r--r--classyage_1_1TextureCache.html42
-rw-r--r--classyage_1_1TextureCache.js6
-rw-r--r--classyage_1_1Vector-members.html41
-rw-r--r--classyage_1_1Vector.html42
-rw-r--r--classyage_1_1Vector.js9
-rw-r--r--classyage_1_1Vector.pngbin799 -> 799 bytes
-rw-r--r--classyage_1_1Vector2-members.html41
-rw-r--r--classyage_1_1Vector2.html42
-rw-r--r--classyage_1_1Vector2.js11
-rw-r--r--classyage_1_1Vector2.pngbin1115 -> 1115 bytes
-rw-r--r--classyage_1_1Vector3-members.html41
-rw-r--r--classyage_1_1Vector3.html42
-rw-r--r--classyage_1_1Vector3.js12
-rw-r--r--classyage_1_1Vector3.pngbin1113 -> 1113 bytes
-rw-r--r--classyage_1_1Vector4-members.html41
-rw-r--r--classyage_1_1Vector4.html42
-rw-r--r--classyage_1_1Vector4.js14
-rw-r--r--classyage_1_1Vector4.pngbin1116 -> 1116 bytes
-rw-r--r--classyage_1_1Window-members.html41
-rw-r--r--classyage_1_1Window.html42
-rw-r--r--classyage_1_1Window.js17
-rw-r--r--classyage_1_1details_1_1Row-members.html41
-rw-r--r--classyage_1_1details_1_1Row.html42
-rw-r--r--classyage_1_1details_1_1Row.js6
-rw-r--r--closed.pngbin132 -> 133 bytes
-rw-r--r--collider_8h.html44
-rw-r--r--collider_8h_source.html42
-rw-r--r--collisionbody_8h.html44
-rw-r--r--collisionbody_8h_source.html42
-rw-r--r--component_8h.html156
-rw-r--r--component_8h_source.html121
-rw-r--r--deprecated.html37
-rw-r--r--dir_059f34b87ae2c2af887b23a7e5e8e88f.html54
-rw-r--r--dir_059f34b87ae2c2af887b23a7e5e8e88f.js31
-rw-r--r--dir_0a5be4b85c8e2c05f7a9f5a803f53125.html44
-rw-r--r--dir_0a5be4b85c8e2c05f7a9f5a803f53125.js11
-rw-r--r--dir_11841e5da2063fc5766a682aee38e289.html42
-rw-r--r--dir_11841e5da2063fc5766a682aee38e289.js39
-rw-r--r--dir_4360c3054e876104aec8d81523b584e2.html141
-rw-r--r--dir_48a91ae829881cbedcfc124d2027890d.html42
-rw-r--r--dir_48a91ae829881cbedcfc124d2027890d.js10
-rw-r--r--dir_a58d7658bbcfd3d3d7296185ebe55c28.html42
-rw-r--r--dir_a58d7658bbcfd3d3d7296185ebe55c28.js26
-rw-r--r--dir_aa7f86daaaa64c448f636c0e65de2cec.html42
-rw-r--r--dir_aa7f86daaaa64c448f636c0e65de2cec.js4
-rw-r--r--dir_d09e80fdcf0bb585bbe3b7099c52d028.html42
-rw-r--r--dir_d09e80fdcf0bb585bbe3b7099c52d028.js13
-rw-r--r--doxygen.css130
-rw-r--r--doxygen.pngbin3779 -> 3853 bytes
-rw-r--r--drawable_8h.html54
-rw-r--r--drawable_8h_source.html77
-rw-r--r--ellipse_8h.html52
-rw-r--r--ellipse_8h_source.html53
-rw-r--r--engine_8cpp.html121
-rw-r--r--engine_8h.html132
-rw-r--r--engine_8h_source.html146
-rw-r--r--entity_8cpp.html122
-rw-r--r--entity_8h.html130
-rw-r--r--entity_8h_source.html131
-rw-r--r--entitymanager_8cpp.html121
-rw-r--r--entitymanager_8h.html131
-rw-r--r--entitymanager_8h_source.html147
-rw-r--r--files.html128
-rw-r--r--files.js4
-rw-r--r--ftv2cl.pngbin453 -> 459 bytes
-rw-r--r--ftv2doc.pngbin746 -> 799 bytes
-rw-r--r--ftv2folderclosed.pngbin616 -> 659 bytes
-rw-r--r--ftv2folderopen.pngbin597 -> 656 bytes
-rw-r--r--ftv2link.pngbin746 -> 799 bytes
-rw-r--r--ftv2mlastnode.pngbin246 -> 246 bytes
-rw-r--r--ftv2mnode.pngbin246 -> 246 bytes
-rw-r--r--ftv2mo.pngbin403 -> 389 bytes
-rw-r--r--ftv2ns.pngbin388 -> 384 bytes
-rw-r--r--ftv2plastnode.pngbin229 -> 234 bytes
-rw-r--r--ftv2pnode.pngbin229 -> 234 bytes
-rw-r--r--ftv2splitbar.pngbin314 -> 304 bytes
-rw-r--r--functions.html38
-rw-r--r--functions_b.html35
-rw-r--r--functions_c.html44
-rw-r--r--functions_d.html35
-rw-r--r--functions_dup.js28
-rw-r--r--functions_e.html41
-rw-r--r--functions_f.html35
-rw-r--r--functions_func.html72
-rw-r--r--functions_g.html38
-rw-r--r--functions_h.html35
-rw-r--r--functions_i.html40
-rw-r--r--functions_k.html35
-rw-r--r--functions_l.html35
-rw-r--r--functions_m.html40
-rw-r--r--functions_n.html35
-rw-r--r--functions_o.html35
-rw-r--r--functions_p.html35
-rw-r--r--functions_r.html35
-rw-r--r--functions_rela.html35
-rw-r--r--functions_s.html40
-rw-r--r--functions_t.html35
-rw-r--r--functions_type.html35
-rw-r--r--functions_u.html37
-rw-r--r--functions_v.html35
-rw-r--r--functions_vars.html35
-rw-r--r--functions_w.html35
-rw-r--r--functions_x.html35
-rw-r--r--functions_y.html35
-rw-r--r--functions_z.html35
-rw-r--r--functions_~.html38
-rw-r--r--globals.html60
-rw-r--r--globals_defs.html36
-rw-r--r--globals_enum.html111
-rw-r--r--globals_eval.html42
-rw-r--r--globals_func.html36
-rw-r--r--globals_type.html36
-rw-r--r--globals_vars.html36
-rw-r--r--hierarchy.html120
-rw-r--r--hierarchy.js63
-rw-r--r--imageloader_8cpp.html44
-rw-r--r--imageloader_8h.html44
-rw-r--r--imageloader_8h_source.html42
-rw-r--r--index.html58
-rw-r--r--input_8h.html44
-rw-r--r--input_8h.js128
-rw-r--r--input_8h_source.html42
-rw-r--r--iomanager_8cpp.html44
-rw-r--r--iomanager_8h.html44
-rw-r--r--iomanager_8h_source.html42
-rw-r--r--jquery.js41
-rw-r--r--logger_8cpp.html44
-rw-r--r--logger_8h.html46
-rw-r--r--logger_8h.js10
-rw-r--r--logger_8h_source.html77
-rw-r--r--logger_8md.html (renamed from logger_8dox.html)42
-rw-r--r--logger_guide.html103
-rw-r--r--loglevel_8h.html45
-rw-r--r--loglevel_8h.js10
-rw-r--r--loglevel_8h_source.html84
-rw-r--r--logmessage_8cpp.html44
-rw-r--r--logmessage_8h.html44
-rw-r--r--logmessage_8h_source.html87
-rw-r--r--logsink_8cpp.html44
-rw-r--r--logsink_8cpp.js7
-rw-r--r--logsink_8h.html44
-rw-r--r--logsink_8h.js7
-rw-r--r--logsink_8h_source.html42
-rw-r--r--main_8md.html (renamed from matrix_8dox.html)42
-rw-r--r--matrix_8h.html44
-rw-r--r--matrix_8h.js33
-rw-r--r--matrix_8h_source.html42
-rw-r--r--matrix_8md.html (renamed from todolist_8dox.html)42
-rw-r--r--matrix_guide.html101
-rw-r--r--md_README.html109
-rw-r--r--md_docs_todolist.html108
-rw-r--r--md_yage_physics_README.html37
-rw-r--r--namespacemembers.html37
-rw-r--r--namespacemembers_enum.html35
-rw-r--r--namespacemembers_eval.html35
-rw-r--r--namespacemembers_func.html37
-rw-r--r--namespacemembers_type.html35
-rw-r--r--namespaces.html37
-rw-r--r--namespaces.js4
-rw-r--r--namespaceyage.html94
-rw-r--r--namespaceyage.js40
-rw-r--r--namespaceyage_1_1details.html42
-rw-r--r--namespaceyage_1_1details.js7
-rw-r--r--namespaceyage_1_1matrix.html44
-rw-r--r--nav_f.pngbin153 -> 144 bytes
-rw-r--r--nav_h.pngbin98 -> 101 bytes
-rw-r--r--navtree.css143
-rw-r--r--navtree.js567
-rw-r--r--navtreeindex0.js253
-rw-r--r--navtreeindex1.js253
-rw-r--r--navtreeindex2.js153
-rw-r--r--open.pngbin123 -> 123 bytes
-rw-r--r--pages.html48
-rw-r--r--particlebody_8cpp.html44
-rw-r--r--particlebody_8h.html44
-rw-r--r--particlebody_8h_source.html42
-rw-r--r--physics_8h.html42
-rw-r--r--physics_8h_source.html42
-rw-r--r--rectangle_8cpp.html54
-rw-r--r--rectangle_8h.html54
-rw-r--r--rectangle_8h_source.html99
-rw-r--r--rectanglecollider_8cpp.html44
-rw-r--r--rectanglecollider_8h.html44
-rw-r--r--rectanglecollider_8h_source.html42
-rw-r--r--resize.js97
-rw-r--r--resourcemanager_8cpp.html44
-rw-r--r--resourcemanager_8h.html44
-rw-r--r--resourcemanager_8h_source.html42
-rw-r--r--rigidbody_8cpp.html44
-rw-r--r--rigidbody_8h.html44
-rw-r--r--rigidbody_8h_source.html42
-rw-r--r--search/all_0.js4
-rw-r--r--search/all_12.js17
-rw-r--r--search/all_13.js2
-rw-r--r--search/all_14.js2
-rw-r--r--search/all_18.js1
-rw-r--r--search/all_1a.js1
-rw-r--r--search/all_2.js11
-rw-r--r--search/all_4.js11
-rw-r--r--search/all_6.js5
-rw-r--r--search/all_8.js4
-rw-r--r--search/all_b.js3
-rw-r--r--search/all_c.js7
-rw-r--r--search/all_d.js1
-rw-r--r--search/all_f.js2
-rw-r--r--search/classes_2.js1
-rw-r--r--search/classes_4.js4
-rw-r--r--search/classes_5.js3
-rw-r--r--search/classes_6.js5
-rw-r--r--search/classes_7.js7
-rw-r--r--search/classes_8.js6
-rw-r--r--search/classes_9.js8
-rw-r--r--search/classes_a.js14
-rw-r--r--search/classes_b.js12
-rw-r--r--search/classes_c.js3
-rw-r--r--search/classes_d.js11
-rw-r--r--search/classes_e.js11
-rw-r--r--search/classes_f.html26
-rw-r--r--search/classes_f.js4
-rw-r--r--search/enums_0.js2
-rw-r--r--search/enums_1.js2
-rw-r--r--search/enums_2.js2
-rw-r--r--search/enums_3.html26
-rw-r--r--search/enums_3.js4
-rw-r--r--search/enumvalues_d.js1
-rw-r--r--search/enumvalues_f.js1
-rw-r--r--search/files_2.js3
-rw-r--r--search/files_4.js8
-rw-r--r--search/files_6.js2
-rw-r--r--search/files_7.js5
-rw-r--r--search/files_a.js6
-rw-r--r--search/files_b.js2
-rw-r--r--search/functions_0.js1
-rw-r--r--search/functions_10.js1
-rw-r--r--search/functions_12.js2
-rw-r--r--search/functions_18.js1
-rw-r--r--search/functions_2.js4
-rw-r--r--search/functions_4.js4
-rw-r--r--search/functions_6.js3
-rw-r--r--search/functions_8.js4
-rw-r--r--search/functions_b.js1
-rw-r--r--search/pages_0.js2
-rw-r--r--search/pages_1.js2
-rw-r--r--search/pages_2.js2
-rw-r--r--search/pages_3.js2
-rw-r--r--search/pages_4.js2
-rw-r--r--search/pages_5.html26
-rw-r--r--search/pages_5.js4
-rw-r--r--search/pages_6.html26
-rw-r--r--search/pages_6.js4
-rw-r--r--search/pages_7.html26
-rw-r--r--search/pages_7.js4
-rw-r--r--search/pages_8.html26
-rw-r--r--search/pages_8.js5
-rw-r--r--search/search.css14
-rw-r--r--search/search.js6
-rw-r--r--shader_8cpp.html44
-rw-r--r--shader_8h.html48
-rw-r--r--shader_8h_source.html46
-rw-r--r--shape_8h.html54
-rw-r--r--shape_8h_source.html81
-rw-r--r--space_8cpp.html121
-rw-r--r--space_8h.html131
-rw-r--r--space_8h_source.html137
-rw-r--r--sprite_8cpp.html44
-rw-r--r--sprite_8h.html44
-rw-r--r--sprite_8h_source.html42
-rw-r--r--spritebatch_8cpp.html44
-rw-r--r--spritebatch_8h.html44
-rw-r--r--spritebatch_8h_source.html44
-rw-r--r--spritebatch_8md.html99
-rw-r--r--spritebatch_guide.html93
-rw-r--r--spritesheet_8cpp.html44
-rw-r--r--spritesheet_8h.html44
-rw-r--r--spritesheet_8h.js6
-rw-r--r--spritesheet_8h_source.html42
-rw-r--r--stb__image_8cpp.html42
-rw-r--r--stb__image_8cpp.js4
-rw-r--r--stb__image_8h.html42
-rw-r--r--stb__image_8h.js48
-rw-r--r--stb__image_8h_source.html14994
-rw-r--r--structstbi__io__callbacks-members.html37
-rw-r--r--structstbi__io__callbacks.html38
-rw-r--r--structstbi__io__callbacks.js6
-rw-r--r--structyage_1_1Colour-members.html41
-rw-r--r--structyage_1_1Colour.html42
-rw-r--r--structyage_1_1Colour.js9
-rw-r--r--structyage_1_1LogMessage_1_1Meta-members.html41
-rw-r--r--structyage_1_1LogMessage_1_1Meta.html42
-rw-r--r--structyage_1_1LogMessage_1_1Meta.js6
-rw-r--r--structyage_1_1Position-members.html41
-rw-r--r--structyage_1_1Position.html42
-rw-r--r--structyage_1_1Position.js7
-rw-r--r--structyage_1_1Texture-members.html41
-rw-r--r--structyage_1_1Texture.html42
-rw-r--r--structyage_1_1Texture.js10
-rw-r--r--structyage_1_1UV-members.html41
-rw-r--r--structyage_1_1UV.html42
-rw-r--r--structyage_1_1UV.js7
-rw-r--r--structyage_1_1Vertex-members.html41
-rw-r--r--structyage_1_1Vertex.html42
-rw-r--r--structyage_1_1Vertex.js11
-rw-r--r--structyage_1_1details_1_1Coordinate-members.html41
-rw-r--r--structyage_1_1details_1_1Coordinate.html42
-rw-r--r--structyage_1_1details_1_1Coordinate.js9
-rw-r--r--structyage_1_1details_1_1Glyph-members.html41
-rw-r--r--structyage_1_1details_1_1Glyph.html42
-rw-r--r--structyage_1_1details_1_1Glyph.js10
-rw-r--r--structyage_1_1details_1_1RenderBatch-members.html41
-rw-r--r--structyage_1_1details_1_1RenderBatch.html42
-rw-r--r--structyage_1_1details_1_1RenderBatch.js7
-rw-r--r--sync_off.pngbin853 -> 847 bytes
-rw-r--r--sync_on.pngbin845 -> 836 bytes
-rw-r--r--syncqueue_8h.html44
-rw-r--r--syncqueue_8h_source.html42
-rw-r--r--system_8h.html129
-rw-r--r--system_8h_source.html129
-rw-r--r--tab_a.pngbin142 -> 145 bytes
-rw-r--r--tab_b.pngbin169 -> 172 bytes
-rw-r--r--tab_h.pngbin177 -> 171 bytes
-rw-r--r--tab_s.pngbin184 -> 178 bytes
-rw-r--r--tabs.css2
-rw-r--r--texture_8h.html44
-rw-r--r--texture_8h_source.html42
-rw-r--r--texturecache_8cpp.html44
-rw-r--r--texturecache_8h.html44
-rw-r--r--texturecache_8h_source.html42
-rw-r--r--todo.html43
-rw-r--r--todolist_8md.html99
-rw-r--r--vertex_8h.html44
-rw-r--r--vertex_8h_source.html42
-rw-r--r--window_8cpp.html46
-rw-r--r--window_8h.html44
-rw-r--r--window_8h.js10
-rw-r--r--window_8h_source.html58
-rw-r--r--yage.pngbin0 -> 3333 bytes
-rw-r--r--yage_2physics_2README_8md.html38
-rw-r--r--yage_8cpp.html52
-rw-r--r--yage_8cpp.js6
-rw-r--r--yage_8h.html55
-rw-r--r--yage_8h.js6
-rw-r--r--yage_8h_source.html117
453 files changed, 16152 insertions, 17249 deletions
diff --git a/README_8md.html b/README_8md.html
index 575135b6..da18960c 100644
--- a/README_8md.html
+++ b/README_8md.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('README_8md.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,21 +82,18 @@ $(document).ready(function(){initNavTree('README_8md.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">README.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="README_8md.html">README.md</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/active_8cpp.html b/active_8cpp.html
index d4aec7b0..a5780c7b 100644
--- a/active_8cpp.html
+++ b/active_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('active_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('active_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -119,7 +103,7 @@ $(document).ready(function(){initNavTree('active_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -127,15 +111,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li><li class="navelem"><a class="el" href="active_8cpp.html">active.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/active_8h.html b/active_8h.html
index 24dcc8c2..f6ba00bf 100644
--- a/active_8h.html
+++ b/active_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('active_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('active_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -130,7 +114,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -138,15 +122,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li><li class="navelem"><a class="el" href="active_8h.html">active.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/active_8h_source.html b/active_8h_source.html
index 79e7f98d..9ce9c03e 100644
--- a/active_8h_source.html
+++ b/active_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('active_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('active_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">active.h</div> </div>
@@ -156,15 +140,11 @@ $(document).ready(function(){initNavTree('active_8h_source.html','');});
<div class="ttc" id="syncqueue_8h_html"><div class="ttname"><a href="syncqueue_8h.html">syncqueue.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="classyage_1_1SyncQueue_html"><div class="ttname"><a href="classyage_1_1SyncQueue.html">yage::SyncQueue&lt; Callback &gt;</a></div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li><li class="navelem"><a class="el" href="active_8h.html">active.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/annotated.html b/annotated.html
index 18365dd4..4af6d9bb 100644
--- a/annotated.html
+++ b/annotated.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -77,20 +71,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('annotated.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -112,7 +92,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage.html" target="_self">yage</a></td><td class="desc">Project namespace </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage.html" target="_self">yage</a></td><td class="desc">Core includes </td></tr>
<tr id="row_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage_1_1details.html" target="_self">details</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1Coordinate.html" target="_self">Coordinate</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1details_1_1Row.html" target="_self">Row</a></td><td class="desc"></td></tr>
@@ -122,8 +102,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_0_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Camera.html" target="_self">Camera</a></td><td class="desc"></td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ImageLoader.html" target="_self">ImageLoader</a></td><td class="desc"></td></tr>
<tr id="row_0_4_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1IoManager.html" target="_self">IoManager</a></td><td class="desc"></td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Logger.html" target="_self">Logger</a></td><td class="desc"><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
-</td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
<tr id="row_0_6_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_6_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogMessage.html" target="_self">LogMessage</a></td><td class="desc"></td></tr>
<tr id="row_0_6_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1LogMessage_1_1Meta.html" target="_self">Meta</a></td><td class="desc"></td></tr>
<tr id="row_0_7_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogSink.html" target="_self">LogSink</a></td><td class="desc"></td></tr>
@@ -136,38 +115,41 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_0_14_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Colour.html" target="_self">Colour</a></td><td class="desc"></td></tr>
<tr id="row_0_15_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1UV.html" target="_self">UV</a></td><td class="desc"></td></tr>
<tr id="row_0_16_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Vertex.html" target="_self">Vertex</a></td><td class="desc"></td></tr>
-<tr id="row_0_17_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">Matrix</a></td><td class="desc">Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes </td></tr>
-<tr id="row_0_18_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
-<tr id="row_0_19_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">Vector2</a></td><td class="desc">2D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_0_20_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector3.html" target="_self">Vector3</a></td><td class="desc">3D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_0_21_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector4.html" target="_self">Vector4</a></td><td class="desc">4D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_0_22_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Body.html" target="_self">Body</a></td><td class="desc"></td></tr>
-<tr id="row_0_23_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Collider.html" target="_self">Collider</a></td><td class="desc"></td></tr>
-<tr id="row_0_24_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1CollisionBody.html" target="_self">CollisionBody</a></td><td class="desc"></td></tr>
-<tr id="row_0_25_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ParticleBody.html" target="_self">ParticleBody</a></td><td class="desc"></td></tr>
-<tr id="row_0_26_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1RectangleCollider.html" target="_self">RectangleCollider</a></td><td class="desc"></td></tr>
-<tr id="row_0_27_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1RigidBody.html" target="_self">RigidBody</a></td><td class="desc"></td></tr>
-<tr id="row_0_28_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Batch.html" target="_self">Batch</a></td><td class="desc">Will be the base class for all the different batching processes that might use different shaders and attributes </td></tr>
-<tr id="row_0_29_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Drawable.html" target="_self">Drawable</a></td><td class="desc"></td></tr>
-<tr id="row_0_30_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Rectangle.html" target="_self">Rectangle</a></td><td class="desc"></td></tr>
-<tr id="row_0_31_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shader.html" target="_self">Shader</a></td><td class="desc"></td></tr>
-<tr id="row_0_32_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shape.html" target="_self">Shape</a></td><td class="desc"></td></tr>
-<tr id="row_0_33_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Sprite.html" target="_self">Sprite</a></td><td class="desc"></td></tr>
-<tr id="row_0_34_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteBatch.html" target="_self">SpriteBatch</a></td><td class="desc"></td></tr>
-<tr id="row_0_35_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Active.html" target="_self">Active</a></td><td class="desc"></td></tr>
-<tr id="row_0_36_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">SyncQueue</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structstbi__io__callbacks.html" target="_self">stbi_io_callbacks</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Engine.html" target="_self">Engine</a></td><td class="desc">Main engine class that contains a systems, the main loop and the update function that updates all the systems </td></tr>
+<tr id="row_0_18_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Entity.html" target="_self">Entity</a></td><td class="desc"><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class </td></tr>
+<tr id="row_0_19_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1EntityManager.html" target="_self">EntityManager</a></td><td class="desc">Manages entities in a space </td></tr>
+<tr id="row_0_20_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Space.html" target="_self">Space</a></td><td class="desc"><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them </td></tr>
+<tr id="row_0_21_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1System.html" target="_self">System</a></td><td class="desc"><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine </td></tr>
+<tr id="row_0_22_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">Matrix</a></td><td class="desc">Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes </td></tr>
+<tr id="row_0_23_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">Vector2</a></td><td class="desc">2D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_0_25_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector3.html" target="_self">Vector3</a></td><td class="desc">3D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_0_26_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector4.html" target="_self">Vector4</a></td><td class="desc">4D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_0_27_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Body.html" target="_self">Body</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Collider.html" target="_self">Collider</a></td><td class="desc"></td></tr>
+<tr id="row_0_29_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1CollisionBody.html" target="_self">CollisionBody</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ParticleBody.html" target="_self">ParticleBody</a></td><td class="desc"></td></tr>
+<tr id="row_0_31_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1RectangleCollider.html" target="_self">RectangleCollider</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1RigidBody.html" target="_self">RigidBody</a></td><td class="desc"></td></tr>
+<tr id="row_0_33_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Batch.html" target="_self">Batch</a></td><td class="desc">Will be the base class for all the different batching processes that might use different shaders and attributes </td></tr>
+<tr id="row_0_34_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Drawable.html" target="_self">Drawable</a></td><td class="desc"></td></tr>
+<tr id="row_0_35_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Rectangle.html" target="_self">Rectangle</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shader.html" target="_self">Shader</a></td><td class="desc"></td></tr>
+<tr id="row_0_37_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shape.html" target="_self">Shape</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Sprite.html" target="_self">Sprite</a></td><td class="desc"></td></tr>
+<tr id="row_0_39_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteBatch.html" target="_self">SpriteBatch</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Active.html" target="_self">Active</a></td><td class="desc"></td></tr>
+<tr id="row_0_41_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">SyncQueue</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classComponent.html" target="_self">Component</a></td><td class="desc"></td></tr>
+<tr id="row_2_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structstbi__io__callbacks.html" target="_self">stbi_io_callbacks</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/annotated.js b/annotated.js
deleted file mode 100644
index 48ccda6f..00000000
--- a/annotated.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var annotated =
-[
- [ "yage", "namespaceyage.html", "namespaceyage" ],
- [ "stbi_io_callbacks", "structstbi__io__callbacks.html", "structstbi__io__callbacks" ]
-]; \ No newline at end of file
diff --git a/batch_8h.html b/batch_8h.html
index ffdfe903..d79d499f 100644
--- a/batch_8h.html
+++ b/batch_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('batch_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('batch_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -112,6 +96,10 @@ $(document).ready(function(){initNavTree('batch_8h.html','');});
</div><!--header-->
<div class="contents">
+<p><hr/>
+
+<a href="#details">More...</a></p>
+
<p><a href="batch_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -123,19 +111,19 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="batch_8h.html">batch.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/batch_8h_source.html b/batch_8h_source.html
index 3c97b55f..dfef1fa5 100644
--- a/batch_8h_source.html
+++ b/batch_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('batch_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,44 +82,46 @@ $(document).ready(function(){initNavTree('batch_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">batch.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="batch_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_BATCH_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_BATCH_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="keyword">namespace </span>yage</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classyage_1_1Batch.html"> 25</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Batch.html">Batch</a></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">init</a>();</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#ab458f3129d2a329806dd00c6be77709d">begin</a>();</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e">end</a>();</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65">render</a>();</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;};</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;} <span class="comment">// namespace yage</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="batch_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_BATCH_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_BATCH_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classyage_1_1Batch.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Batch.html">Batch</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">init</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#ab458f3129d2a329806dd00c6be77709d">begin</a>();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e">end</a>();</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65">render</a>();</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classyage_1_1Batch_html_ab458f3129d2a329806dd00c6be77709d"><div class="ttname"><a href="classyage_1_1Batch.html#ab458f3129d2a329806dd00c6be77709d">yage::Batch::begin</a></div><div class="ttdeci">virtual void begin()</div></div>
-<div class="ttc" id="classyage_1_1Batch_html"><div class="ttname"><a href="classyage_1_1Batch.html">yage::Batch</a></div><div class="ttdoc">The Batch class will be the base class for all the different batching processes that might use differ...</div><div class="ttdef"><b>Definition:</b> batch.h:25</div></div>
+<div class="ttc" id="classyage_1_1Batch_html"><div class="ttname"><a href="classyage_1_1Batch.html">yage::Batch</a></div><div class="ttdoc">The Batch class will be the base class for all the different batching processes that might use differ...</div><div class="ttdef"><b>Definition:</b> batch.h:33</div></div>
<div class="ttc" id="classyage_1_1Batch_html_a0040228902f0a4cca90da23f36a7c477"><div class="ttname"><a href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">yage::Batch::init</a></div><div class="ttdeci">virtual bool init()</div></div>
<div class="ttc" id="classyage_1_1Batch_html_a3439c8dd88d87be4460161d233044c65"><div class="ttname"><a href="classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65">yage::Batch::render</a></div><div class="ttdeci">virtual void render()</div></div>
<div class="ttc" id="classyage_1_1Batch_html_a322b0fe531c9cfa506d6d2dd786a236e"><div class="ttname"><a href="classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e">yage::Batch::end</a></div><div class="ttdeci">virtual void end()</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="batch_8h.html">batch.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/bc_s.png b/bc_s.png
index 224b29aa..fa6edc0c 100644
--- a/bc_s.png
+++ b/bc_s.png
Binary files differ
diff --git a/bdwn.png b/bdwn.png
index 940a0b95..7e7c893b 100644
--- a/bdwn.png
+++ b/bdwn.png
Binary files differ
diff --git a/body_8cpp.html b/body_8cpp.html
index f18f6e40..80f9f1af 100644
--- a/body_8cpp.html
+++ b/body_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('body_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('body_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -120,7 +104,7 @@ $(document).ready(function(){initNavTree('body_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -128,15 +112,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="body_8cpp.html">body.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/body_8h.html b/body_8h.html
index bdaadacf..ded4734d 100644
--- a/body_8h.html
+++ b/body_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('body_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('body_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="body_8h.html">body.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/body_8h_source.html b/body_8h_source.html
index 2265936a..ea4a1dd9 100644
--- a/body_8h_source.html
+++ b/body_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('body_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('body_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">body.h</div> </div>
@@ -176,15 +160,11 @@ $(document).ready(function(){initNavTree('body_8h_source.html','');});
<div class="ttc" id="classyage_1_1Body_html_a17017d183f3f9ecdff779fd6f82c5d36"><div class="ttname"><a href="classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36">yage::Body::update</a></div><div class="ttdeci">virtual void update()=0</div></div>
<div class="ttc" id="classyage_1_1Body_html_a8fe4f244be47f1336a57c1f2aa095157"><div class="ttname"><a href="classyage_1_1Body.html#a8fe4f244be47f1336a57c1f2aa095157">yage::Body::position_</a></div><div class="ttdeci">Vector2d position_</div><div class="ttdef"><b>Definition:</b> body.h:25</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="body_8h.html">body.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/bug.html b/bug.html
index 259593c5..61a327ee 100644
--- a/bug.html
+++ b/bug.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('bug.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,7 @@ $(document).ready(function(){initNavTree('bug.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Bug List </div> </div>
@@ -107,14 +87,11 @@ $(document).ready(function(){initNavTree('bug.html','');});
<dd>When printing certain matrices, it omits a row or column. Still need to determine under which conditions. </dd>
</dl>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/camera_8cpp.html b/camera_8cpp.html
index 1d0c5f4a..46a379ed 100644
--- a/camera_8cpp.html
+++ b/camera_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('camera_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('camera_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -123,7 +107,7 @@ $(document).ready(function(){initNavTree('camera_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -131,15 +115,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="camera_8cpp.html">camera.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/camera_8h.html b/camera_8h.html
index 611acfb7..bb5b8893 100644
--- a/camera_8h.html
+++ b/camera_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('camera_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('camera_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="camera_8h.html">camera.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/camera_8h_source.html b/camera_8h_source.html
index c1e18ce2..fc575533 100644
--- a/camera_8h_source.html
+++ b/camera_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('camera_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('camera_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">camera.h</div> </div>
@@ -146,15 +130,11 @@ $(document).ready(function(){initNavTree('camera_8h_source.html','');});
<div class="ttc" id="classyage_1_1Camera_html_a012820185cceb451926bc4ef1607b324"><div class="ttname"><a href="classyage_1_1Camera.html#a012820185cceb451926bc4ef1607b324">yage::Camera::move</a></div><div class="ttdeci">void move(const glm::vec2 &amp;direction)</div><div class="ttdoc">Moves the camera using a two-dimensional displacement vector to describe the movement. </div><div class="ttdef"><b>Definition:</b> camera.cpp:66</div></div>
<div class="ttc" id="classyage_1_1Camera_html_a99f0af50db990c5558fd0b7b82f3978c"><div class="ttname"><a href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">yage::Camera::update</a></div><div class="ttdeci">void update(Shader &amp;program)</div><div class="ttdoc">Updates the camera matrix value in the shader program that is passed to it. </div><div class="ttdef"><b>Definition:</b> camera.cpp:44</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="camera_8h.html">camera.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classComponent.html b/classComponent.html
new file mode 100644
index 00000000..d847a81d
--- /dev/null
+++ b/classComponent.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Component Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Component Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="component_8h_source.html">component.h</a>&gt;</code></p>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>yage/engine/<a class="el" href="component_8h_source.html">component.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classes.html b/classes.html
index d8b67aae..17e526d1 100644
--- a/classes.html
+++ b/classes.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -77,20 +71,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classes.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -110,53 +90,52 @@ $(document).ready(function(){initNavTree('classes.html','');});
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">LogMessage::Meta</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Shape.html">Shape</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector2.html">Vector2</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classyage_1_1Sprite.html">Sprite</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector3.html">Vector3</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Active.html">Active</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1details_1_1Glyph.html">Glyph</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1SpriteBatch.html">SpriteBatch</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector4.html">Vector4</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classyage_1_1ParticleBody.html">ParticleBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1SpriteSheet.html">SpriteSheet</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1Vertex.html">Vertex</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structyage_1_1Position.html">Position</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1SyncQueue.html">SyncQueue</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classyage_1_1LogSink.html">LogSink</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1details_1_1Row.html">Row</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;V&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Batch.html">Batch</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1ImageLoader.html">ImageLoader</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+<tr><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Body.html">Body</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1IoManager.html">IoManager</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Window.html">Window</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Active.html">Active</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Engine.html">Engine</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector.html">Vector</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classyage_1_1Entity.html">Entity</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Matrix.html">Matrix</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Shader.html">Shader</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector2.html">Vector2</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1EntityManager.html">EntityManager</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">LogMessage::Meta</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Shape.html">Shape</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector3.html">Vector3</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Batch.html">Batch</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classyage_1_1Space.html">Space</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector4.html">Vector4</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Body.html">Body</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Sprite.html">Sprite</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1Vertex.html">Vertex</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classyage_1_1Rectangle.html">Rectangle</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1Texture.html">Texture</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structyage_1_1details_1_1Glyph.html">Glyph</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1ParticleBody.html">ParticleBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1SpriteBatch.html">SpriteBatch</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1RectangleCollider.html">RectangleCollider</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1TextureCache.html">TextureCache</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Camera.html">Camera</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Logger.html">Logger</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">RenderBatch</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structstbi__io__callbacks.html">stbi_io_callbacks</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Collider.html">Collider</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1ResourceManager.html">ResourceManager</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1CollisionBody.html">CollisionBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1LogSink.html">LogSink</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1RigidBody.html">RigidBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1UV.html">UV</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structyage_1_1Colour.html">Colour</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classyage_1_1details_1_1Row.html">Row</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;V&#160;&#160;</div></td></tr></table>
-</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structyage_1_1details_1_1Coordinate.html">Coordinate</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
-</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structyage_1_1Position.html">Position</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1SpriteSheet.html">SpriteSheet</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Camera.html">Camera</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classyage_1_1SyncQueue.html">SyncQueue</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Window.html">Window</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Collider.html">Collider</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1ImageLoader.html">ImageLoader</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1System.html">System</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1CollisionBody.html">CollisionBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1IoManager.html">IoManager</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Rectangle.html">Rectangle</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="structyage_1_1Colour.html">Colour</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classyage_1_1RectangleCollider.html">RectangleCollider</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structstbi__io__callbacks.html">stbi_io_callbacks</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classComponent.html">Component</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">RenderBatch</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structyage_1_1Texture.html">Texture</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structyage_1_1details_1_1Coordinate.html">Coordinate</a> (<a class="el" href="namespaceyage_1_1details.html">yage::details</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Logger.html">Logger</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1ResourceManager.html">ResourceManager</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1TextureCache.html">TextureCache</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classyage_1_1Matrix.html">Matrix</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1Vector.html">Vector</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="classyage_1_1Shader.html">Shader</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classyage_1_1Drawable.html">Drawable</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td><td></td></tr>
+</td><td valign="top"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classyage_1_1RigidBody.html">RigidBody</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classyage_1_1Drawable.html">Drawable</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td><td></td><td valign="top"><a class="el" href="structyage_1_1UV.html">UV</a> (<a class="el" href="namespaceyage.html">yage</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Active-members.html b/classyage_1_1Active-members.html
index e470f033..eac0433e 100644
--- a/classyage_1_1Active-members.html
+++ b/classyage_1_1Active-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Active.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Active.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Active.html">Active</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Active Member List</div> </div>
@@ -120,14 +104,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Active.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Active.html#a665673b94eb5ce7c448839e5bb6e0326">send</a>(Callback message)</td><td class="entry"><a class="el" href="classyage_1_1Active.html">yage::Active</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Active.html#ab69d08cf4804b59ac9db283015e749f2">~Active</a>()</td><td class="entry"><a class="el" href="classyage_1_1Active.html">yage::Active</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Active.html b/classyage_1_1Active.html
index daa3d377..355e4d32 100644
--- a/classyage_1_1Active.html
+++ b/classyage_1_1Active.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Active.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Active.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Active.html">Active</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
@@ -261,15 +245,11 @@ Static Public Member Functions</h2></td></tr>
<li>yage/util/<a class="el" href="active_8cpp.html">active.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Active.html">Active</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Active.js b/classyage_1_1Active.js
deleted file mode 100644
index 8b1c7418..00000000
--- a/classyage_1_1Active.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classyage_1_1Active =
-[
- [ "Callback", "classyage_1_1Active.html#a4b82fec6f02c00d186b1b840ce8f11dc", null ],
- [ "Active", "classyage_1_1Active.html#a7cd7344f0b8b7aa93ac0449e2fbbf7bd", null ],
- [ "~Active", "classyage_1_1Active.html#ab69d08cf4804b59ac9db283015e749f2", null ],
- [ "create", "classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064", null ],
- [ "operator=", "classyage_1_1Active.html#add837044e73e4bc9849f09495535600c", null ],
- [ "send", "classyage_1_1Active.html#a665673b94eb5ce7c448839e5bb6e0326", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Batch-members.html b/classyage_1_1Batch-members.html
index 851b7361..03c16360 100644
--- a/classyage_1_1Batch-members.html
+++ b/classyage_1_1Batch-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Batch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Batch.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Batch.html">Batch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Batch Member List</div> </div>
@@ -118,14 +102,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Batch.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">init</a>()</td><td class="entry"><a class="el" href="classyage_1_1Batch.html">yage::Batch</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65">render</a>()</td><td class="entry"><a class="el" href="classyage_1_1Batch.html">yage::Batch</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Batch.html b/classyage_1_1Batch.html
index aa72bcbf..e0d45f71 100644
--- a/classyage_1_1Batch.html
+++ b/classyage_1_1Batch.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Batch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Batch.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Batch.html">Batch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -233,15 +217,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="batch_8h_source.html">batch.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Batch.html">Batch</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Batch.js b/classyage_1_1Batch.js
deleted file mode 100644
index 7b07b8e1..00000000
--- a/classyage_1_1Batch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var classyage_1_1Batch =
-[
- [ "begin", "classyage_1_1Batch.html#ab458f3129d2a329806dd00c6be77709d", null ],
- [ "end", "classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e", null ],
- [ "init", "classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477", null ],
- [ "render", "classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Body-members.html b/classyage_1_1Body-members.html
index 3d874d0d..31986f0f 100644
--- a/classyage_1_1Body-members.html
+++ b/classyage_1_1Body-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Body.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Body.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Body.html">Body</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Body Member List</div> </div>
@@ -126,14 +110,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Body.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Body.html#a8a800cef0fb3561332d4a97c790e7225">xPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364">yPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Body.html b/classyage_1_1Body.html
index 4f38b9c3..bec54f34 100644
--- a/classyage_1_1Body.html
+++ b/classyage_1_1Body.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Body.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Body.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Body.html">Body</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -441,15 +425,11 @@ Protected Attributes</h2></td></tr>
<li>yage/physics/<a class="el" href="body_8cpp.html">body.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Body.html">Body</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Body.js b/classyage_1_1Body.js
deleted file mode 100644
index 96fc0f3a..00000000
--- a/classyage_1_1Body.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var classyage_1_1Body =
-[
- [ "Body", "classyage_1_1Body.html#aeca769807d9b6f6fb3c9f61deaa83b86", null ],
- [ "applyForce", "classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878", null ],
- [ "update", "classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36", null ],
- [ "xPosition", "classyage_1_1Body.html#a8a800cef0fb3561332d4a97c790e7225", null ],
- [ "yPosition", "classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364", null ],
- [ "acceleration_", "classyage_1_1Body.html#a36c0a4485bf9a704901d88c6cf212a5f", null ],
- [ "force_", "classyage_1_1Body.html#a262c896b473d7672cde524145cd7981d", null ],
- [ "GRAVITY", "classyage_1_1Body.html#a4f61913cf00244a6160e09cda846f766", null ],
- [ "gravity_", "classyage_1_1Body.html#a454a7c59d07c94afb0a35c3d53ec2191", null ],
- [ "mass_", "classyage_1_1Body.html#a01b2a500e71bc88f2cb597f376bc8289", null ],
- [ "position_", "classyage_1_1Body.html#a8fe4f244be47f1336a57c1f2aa095157", null ],
- [ "velocity_", "classyage_1_1Body.html#afead7edec899748eab78879e6e6c5741", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Body.png b/classyage_1_1Body.png
index 4343e414..be1a7140 100644
--- a/classyage_1_1Body.png
+++ b/classyage_1_1Body.png
Binary files differ
diff --git a/classyage_1_1Camera-members.html b/classyage_1_1Camera-members.html
index 924c374d..b5f6f123 100644
--- a/classyage_1_1Camera-members.html
+++ b/classyage_1_1Camera-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Camera.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Camera.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Camera.html">Camera</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Camera Member List</div> </div>
@@ -118,14 +102,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Camera.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">update</a>(Shader &amp;program)</td><td class="entry"><a class="el" href="classyage_1_1Camera.html">yage::Camera</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Camera.html#a8b50af04dae6eca905c5008ef93b72d0">zoom</a>(float factor)</td><td class="entry"><a class="el" href="classyage_1_1Camera.html">yage::Camera</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Camera.html b/classyage_1_1Camera.html
index 4cad68d6..6e792630 100644
--- a/classyage_1_1Camera.html
+++ b/classyage_1_1Camera.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Camera.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Camera.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Camera.html">Camera</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -215,7 +199,7 @@ Public Member Functions</h2></td></tr>
</table>
</dd>
</dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Make this function more general to be able to be able to use any parametre in then shader as the camera matrix and not make it dependent on it being <code>P</code>. </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Make this function more general to be able to be able to use any parametre in then shader as the camera matrix and not make it dependent on it being <code>P</code>. </dd></dl>
</div>
</div>
@@ -248,15 +232,11 @@ Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="camera_8cpp.html">camera.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Camera.html">Camera</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Camera.js b/classyage_1_1Camera.js
deleted file mode 100644
index fc42c3c3..00000000
--- a/classyage_1_1Camera.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var classyage_1_1Camera =
-[
- [ "Camera", "classyage_1_1Camera.html#a13be1e50638977d62cff9ffba1213611", null ],
- [ "move", "classyage_1_1Camera.html#a012820185cceb451926bc4ef1607b324", null ],
- [ "update", "classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c", null ],
- [ "zoom", "classyage_1_1Camera.html#a8b50af04dae6eca905c5008ef93b72d0", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Collider-members.html b/classyage_1_1Collider-members.html
index 95f011a3..81c30bee 100644
--- a/classyage_1_1Collider-members.html
+++ b/classyage_1_1Collider-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Collider.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Collider.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Collider.html">Collider</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Collider Member List</div> </div>
@@ -119,14 +103,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Collider.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Collider.html#a2ae348a82a0ca7a871c05f36e5031161">position_</a></td><td class="entry"><a class="el" href="classyage_1_1Collider.html">yage::Collider</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308">size_</a></td><td class="entry"><a class="el" href="classyage_1_1Collider.html">yage::Collider</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Collider.html b/classyage_1_1Collider.html
index ea285f4f..b156d7e4 100644
--- a/classyage_1_1Collider.html
+++ b/classyage_1_1Collider.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Collider.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Collider.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Collider.html">Collider</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -275,15 +259,11 @@ Protected Attributes</h2></td></tr>
<li>yage/physics/<a class="el" href="collider_8h_source.html">collider.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Collider.html">Collider</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Collider.js b/classyage_1_1Collider.js
deleted file mode 100644
index 0935b310..00000000
--- a/classyage_1_1Collider.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var classyage_1_1Collider =
-[
- [ "Collider", "classyage_1_1Collider.html#ae33aeb0711409e7c3ef9e21ed99fa8a3", null ],
- [ "collides", "classyage_1_1Collider.html#abbab9373c0805ffa5215c08b82eaed03", null ],
- [ "inside", "classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9", null ],
- [ "position_", "classyage_1_1Collider.html#a2ae348a82a0ca7a871c05f36e5031161", null ],
- [ "size_", "classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Collider.png b/classyage_1_1Collider.png
index f00858b9..cccf8d20 100644
--- a/classyage_1_1Collider.png
+++ b/classyage_1_1Collider.png
Binary files differ
diff --git a/classyage_1_1CollisionBody-members.html b/classyage_1_1CollisionBody-members.html
index 8e7ed13d..589f7d53 100644
--- a/classyage_1_1CollisionBody-members.html
+++ b/classyage_1_1CollisionBody-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1CollisionBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1CollisionBody.html','');}
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1CollisionBody.html">CollisionBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::CollisionBody Member List</div> </div>
@@ -128,14 +112,11 @@ $(document).ready(function(){initNavTree('classyage_1_1CollisionBody.html','');}
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364">yPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1CollisionBody.html#a758b2f867f276f4c7e02ebda2cd04c8b">~CollisionBody</a>()</td><td class="entry"><a class="el" href="classyage_1_1CollisionBody.html">yage::CollisionBody</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1CollisionBody.html b/classyage_1_1CollisionBody.html
index 59bc1aeb..abaf9190 100644
--- a/classyage_1_1CollisionBody.html
+++ b/classyage_1_1CollisionBody.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1CollisionBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1CollisionBody.html','');}
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1CollisionBody.html">CollisionBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -206,15 +190,11 @@ Additional Inherited Members</h2></td></tr>
<li>yage/physics/<a class="el" href="collisionbody_8h_source.html">collisionbody.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1CollisionBody.html">CollisionBody</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1CollisionBody.js b/classyage_1_1CollisionBody.js
deleted file mode 100644
index ceb8e524..00000000
--- a/classyage_1_1CollisionBody.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var classyage_1_1CollisionBody =
-[
- [ "CollisionBody", "classyage_1_1CollisionBody.html#a5289e613269facc45cd451872c17a83d", null ],
- [ "~CollisionBody", "classyage_1_1CollisionBody.html#a758b2f867f276f4c7e02ebda2cd04c8b", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1CollisionBody.png b/classyage_1_1CollisionBody.png
index c297c566..8a316b80 100644
--- a/classyage_1_1CollisionBody.png
+++ b/classyage_1_1CollisionBody.png
Binary files differ
diff --git a/classyage_1_1Drawable-members.html b/classyage_1_1Drawable-members.html
index 0e9a29a3..81aa27f5 100644
--- a/classyage_1_1Drawable-members.html
+++ b/classyage_1_1Drawable-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Drawable.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Drawable.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Drawable.html">Drawable</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Drawable Member List</div> </div>
@@ -115,14 +99,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Drawable.html','');});
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e">draw</a>(SpriteBatch &amp;sp)=0</td><td class="entry"><a class="el" href="classyage_1_1Drawable.html">yage::Drawable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Drawable.html b/classyage_1_1Drawable.html
index 2dcc7a1a..f46671b2 100644
--- a/classyage_1_1Drawable.html
+++ b/classyage_1_1Drawable.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Drawable.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Drawable.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Drawable.html">Drawable</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -160,15 +144,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="drawable_8h_source.html">drawable.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Drawable.html">Drawable</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Drawable.js b/classyage_1_1Drawable.js
deleted file mode 100644
index 9b0202f2..00000000
--- a/classyage_1_1Drawable.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1Drawable =
-[
- [ "draw", "classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Drawable.png b/classyage_1_1Drawable.png
index b2d21aae..fc3dac7a 100644
--- a/classyage_1_1Drawable.png
+++ b/classyage_1_1Drawable.png
Binary files differ
diff --git a/classyage_1_1Engine-members.html b/classyage_1_1Engine-members.html
new file mode 100644
index 00000000..e25c26aa
--- /dev/null
+++ b/classyage_1_1Engine-members.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Engine.html">Engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">yage::Engine Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classyage_1_1Engine.html">yage::Engine</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">addSystem</a>(System *system)</td><td class="entry"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">init</a>()</td><td class="entry"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">instance</a>()</td><td class="entry"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">mainLoop</a>()</td><td class="entry"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">update</a>()</td><td class="entry"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1Engine.html b/classyage_1_1Engine.html
new file mode 100644
index 00000000..ebed2ace
--- /dev/null
+++ b/classyage_1_1Engine.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage::Engine Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Engine.html">Engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classyage_1_1Engine-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">yage::Engine Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Main engine class that contains a systems, the main loop and the update function that updates all the systems.
+ <a href="classyage_1_1Engine.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="engine_8h_source.html">engine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a41073d8b8117e567357fe46fed01bbe4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">init</a> ()</td></tr>
+<tr class="memdesc:a41073d8b8117e567357fe46fed01bbe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize window and other aspects of the engine. <a href="#a41073d8b8117e567357fe46fed01bbe4">More...</a><br/></td></tr>
+<tr class="separator:a41073d8b8117e567357fe46fed01bbe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a245478397be4ca0d9ac6af84c1753e42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">mainLoop</a> ()</td></tr>
+<tr class="memdesc:a245478397be4ca0d9ac6af84c1753e42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main game loop of the engine. <a href="#a245478397be4ca0d9ac6af84c1753e42">More...</a><br/></td></tr>
+<tr class="separator:a245478397be4ca0d9ac6af84c1753e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d888a2871d93f40b98ecf3548dd8d67"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">update</a> ()</td></tr>
+<tr class="memdesc:a8d888a2871d93f40b98ecf3548dd8d67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the systems. <a href="#a8d888a2871d93f40b98ecf3548dd8d67">More...</a><br/></td></tr>
+<tr class="separator:a8d888a2871d93f40b98ecf3548dd8d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab605c8ab3209e6cb1a8b0d45eb6180b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">addSystem</a> (<a class="el" href="classyage_1_1System.html">System</a> *system)</td></tr>
+<tr class="memdesc:ab605c8ab3209e6cb1a8b0d45eb6180b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a system to the engine. <a href="#ab605c8ab3209e6cb1a8b0d45eb6180b6">More...</a><br/></td></tr>
+<tr class="separator:ab605c8ab3209e6cb1a8b0d45eb6180b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a7e4303fa3bd951ee64e166d6e0fb7b33"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classyage_1_1Engine.html">Engine</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">instance</a> ()</td></tr>
+<tr class="memdesc:a7e4303fa3bd951ee64e166d6e0fb7b33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the instance of the engine, as there is only one instance of the engine. <a href="#a7e4303fa3bd951ee64e166d6e0fb7b33">More...</a><br/></td></tr>
+<tr class="separator:a7e4303fa3bd951ee64e166d6e0fb7b33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Main engine class that contains a systems, the main loop and the update function that updates all the systems. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab605c8ab3209e6cb1a8b0d45eb6180b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void yage::Engine::addSystem </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classyage_1_1System.html">System</a> *&#160;</td>
+ <td class="paramname"><em>system</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Adds a system to the engine. </p>
+
+</div>
+</div>
+<a class="anchor" id="a41073d8b8117e567357fe46fed01bbe4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void yage::Engine::init </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize window and other aspects of the engine. </p>
+
+</div>
+</div>
+<a class="anchor" id="a7e4303fa3bd951ee64e166d6e0fb7b33"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classyage_1_1Engine.html">Engine</a> &amp; yage::Engine::instance </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Returns the instance of the engine, as there is only one instance of the engine. </p>
+
+</div>
+</div>
+<a class="anchor" id="a245478397be4ca0d9ac6af84c1753e42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void yage::Engine::mainLoop </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Main game loop of the engine. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8d888a2871d93f40b98ecf3548dd8d67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void yage::Engine::update </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Updates the systems. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>yage/engine/<a class="el" href="engine_8h_source.html">engine.h</a></li>
+<li>yage/engine/<a class="el" href="engine_8cpp.html">engine.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1Entity-members.html b/classyage_1_1Entity-members.html
new file mode 100644
index 00000000..6b3dd7ec
--- /dev/null
+++ b/classyage_1_1Entity-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Entity.html">Entity</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">yage::Entity Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classyage_1_1Entity.html">yage::Entity</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">Entity</a>(unsigned handle)</td><td class="entry"><a class="el" href="classyage_1_1Entity.html">yage::Entity</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">getHandle</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Entity.html">yage::Entity</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1Entity.html b/classyage_1_1Entity.html
new file mode 100644
index 00000000..d8bdb0d1
--- /dev/null
+++ b/classyage_1_1Entity.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage::Entity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Entity.html">Entity</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classyage_1_1Entity-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">yage::Entity Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class.
+ <a href="classyage_1_1Entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="entity_8h_source.html">entity.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a046099f19b3483140505938769276d8a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">Entity</a> (unsigned handle)</td></tr>
+<tr class="memdesc:a046099f19b3483140505938769276d8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an instance of an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> with a handle that is associated to it. <a href="#a046099f19b3483140505938769276d8a">More...</a><br/></td></tr>
+<tr class="separator:a046099f19b3483140505938769276d8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb9e45f096a38c1057bba28acf7dde71"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">getHandle</a> () const </td></tr>
+<tr class="memdesc:adb9e45f096a38c1057bba28acf7dde71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle getter, as the user will only interact with the id itself. <a href="#adb9e45f096a38c1057bba28acf7dde71">More...</a><br/></td></tr>
+<tr class="separator:adb9e45f096a38c1057bba28acf7dde71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class. </p>
+<p>It contains handles to where the entity is in the entity manager of the space, and a pointer back to the space itself.</p>
+<p>This class cannot be instantiated outside of a <a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> and should only be instantiated through an entity manager, as otherwise the handle will not have a meaning. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a046099f19b3483140505938769276d8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::Entity::Entity </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>handle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an instance of an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> with a handle that is associated to it. </p>
+<p>This handle refers to the position of he <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> in the list that is held by the <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a>, and therefore the id is enough to refer to it. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="adb9e45f096a38c1057bba28acf7dde71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned yage::Entity::getHandle </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Handle getter, as the user will only interact with the id itself. </p>
+<p>The handle is the unique identifier that the user can use to refer to the entity. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>yage/engine/<a class="el" href="entity_8h_source.html">entity.h</a></li>
+<li>yage/engine/<a class="el" href="entity_8cpp.html">entity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1EntityManager-members.html b/classyage_1_1EntityManager-members.html
new file mode 100644
index 00000000..94607f49
--- /dev/null
+++ b/classyage_1_1EntityManager-members.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1EntityManager.html">EntityManager</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">yage::EntityManager Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">createEntity</a>()</td><td class="entry"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">createEntityInstance</a>()</td><td class="entry"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">EntityManager</a>()=default</td><td class="entry"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1EntityManager.html#a0099fe0038967007891d2b7575090915">EntityManager</a>(Space *space)</td><td class="entry"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1EntityManager.html#af1644095d96e43ac000375ba7f7ee021">EntityManager</a>(Space *space, std::size_t n)</td><td class="entry"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1EntityManager.html b/classyage_1_1EntityManager.html
new file mode 100644
index 00000000..fb4b9662
--- /dev/null
+++ b/classyage_1_1EntityManager.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage::EntityManager Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1EntityManager.html">EntityManager</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classyage_1_1EntityManager-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">yage::EntityManager Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Manages entities in a space.
+ <a href="classyage_1_1EntityManager.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="entitymanager_8h_source.html">entitymanager.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a255fa9aff3e6b208eea0c38d8caf08f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">EntityManager</a> ()=default</td></tr>
+<tr class="memdesc:a255fa9aff3e6b208eea0c38d8caf08f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default instance of an <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a>. <a href="#a255fa9aff3e6b208eea0c38d8caf08f8">More...</a><br/></td></tr>
+<tr class="separator:a255fa9aff3e6b208eea0c38d8caf08f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0099fe0038967007891d2b7575090915"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html#a0099fe0038967007891d2b7575090915">EntityManager</a> (<a class="el" href="classyage_1_1Space.html">Space</a> *space)</td></tr>
+<tr class="memdesc:a0099fe0038967007891d2b7575090915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an instance of the entity manager, which refers back to the space it was created in and belongs to. <a href="#a0099fe0038967007891d2b7575090915">More...</a><br/></td></tr>
+<tr class="separator:a0099fe0038967007891d2b7575090915"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1644095d96e43ac000375ba7f7ee021"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html#af1644095d96e43ac000375ba7f7ee021">EntityManager</a> (<a class="el" href="classyage_1_1Space.html">Space</a> *space, std::size_t n)</td></tr>
+<tr class="memdesc:af1644095d96e43ac000375ba7f7ee021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an instance of the entitiy manager with an initial size. <a href="#af1644095d96e43ac000375ba7f7ee021">More...</a><br/></td></tr>
+<tr class="separator:af1644095d96e43ac000375ba7f7ee021"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdd054a1235fb03452089d9f419a7e2b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">createEntity</a> ()</td></tr>
+<tr class="memdesc:acdd054a1235fb03452089d9f419a7e2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> and returns the handle to the entity, which can then be used by the user to do operations on it. <a href="#acdd054a1235fb03452089d9f419a7e2b">More...</a><br/></td></tr>
+<tr class="separator:acdd054a1235fb03452089d9f419a7e2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a188f3bc252781f9f3a7b4da417f0d7de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classyage_1_1Entity.html">Entity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">createEntityInstance</a> ()</td></tr>
+<tr class="memdesc:a188f3bc252781f9f3a7b4da417f0d7de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> and returns it. <a href="#a188f3bc252781f9f3a7b4da417f0d7de">More...</a><br/></td></tr>
+<tr class="separator:a188f3bc252781f9f3a7b4da417f0d7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Manages entities in a space. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a255fa9aff3e6b208eea0c38d8caf08f8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::EntityManager::EntityManager </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Default instance of an <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0099fe0038967007891d2b7575090915"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::EntityManager::EntityManager </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classyage_1_1Space.html">Space</a> *&#160;</td>
+ <td class="paramname"><em>space</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an instance of the entity manager, which refers back to the space it was created in and belongs to. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">space</td><td>Current space that the <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a> belongs to. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af1644095d96e43ac000375ba7f7ee021"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::EntityManager::EntityManager </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classyage_1_1Space.html">Space</a> *&#160;</td>
+ <td class="paramname"><em>space</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::size_t&#160;</td>
+ <td class="paramname"><em>n</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an instance of the entitiy manager with an initial size. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">space</td><td>Current space that the <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a> belongs to. </td></tr>
+ <tr><td class="paramname">n</td><td>Initial size of the <a class="el" href="classyage_1_1EntityManager.html" title="Manages entities in a space. ">EntityManager</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="acdd054a1235fb03452089d9f419a7e2b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned yage::EntityManager::createEntity </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> and returns the handle to the entity, which can then be used by the user to do operations on it. </p>
+<dl class="section return"><dt>Returns</dt><dd>The handle to the entity that was created in the space. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a188f3bc252781f9f3a7b4da417f0d7de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classyage_1_1Entity.html">Entity</a> yage::EntityManager::createEntityInstance </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> and returns it. </p>
+<dl class="section return"><dt>Returns</dt><dd>The entity that was created by the entity manager in the current space. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>yage/engine/<a class="el" href="entitymanager_8h_source.html">entitymanager.h</a></li>
+<li>yage/engine/<a class="el" href="entitymanager_8cpp.html">entitymanager.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1ImageLoader-members.html b/classyage_1_1ImageLoader-members.html
index 9bbaf089..e0f79933 100644
--- a/classyage_1_1ImageLoader-members.html
+++ b/classyage_1_1ImageLoader-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ImageLoader.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ImageLoader.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ImageLoader.html">ImageLoader</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::ImageLoader Member List</div> </div>
@@ -115,14 +99,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ImageLoader.html','');});
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1ImageLoader.html#ad8dcdaaed43713f07723f2b6719d1b32">loadPng</a>(const std::string &amp;file_path)</td><td class="entry"><a class="el" href="classyage_1_1ImageLoader.html">yage::ImageLoader</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ImageLoader.html b/classyage_1_1ImageLoader.html
index 5c3e36f7..a4510a99 100644
--- a/classyage_1_1ImageLoader.html
+++ b/classyage_1_1ImageLoader.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ImageLoader.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ImageLoader.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ImageLoader.html">ImageLoader</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
@@ -151,15 +135,11 @@ Static Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="imageloader_8cpp.html">imageloader.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ImageLoader.html">ImageLoader</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ImageLoader.js b/classyage_1_1ImageLoader.js
deleted file mode 100644
index 566d4441..00000000
--- a/classyage_1_1ImageLoader.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1ImageLoader =
-[
- [ "loadPng", "classyage_1_1ImageLoader.html#ad8dcdaaed43713f07723f2b6719d1b32", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1IoManager-members.html b/classyage_1_1IoManager-members.html
index 0c610950..0465e80e 100644
--- a/classyage_1_1IoManager-members.html
+++ b/classyage_1_1IoManager-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1IoManager.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1IoManager.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1IoManager.html">IoManager</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::IoManager Member List</div> </div>
@@ -115,14 +99,11 @@ $(document).ready(function(){initNavTree('classyage_1_1IoManager.html','');});
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1IoManager.html#a75d13ca634df592e44e4152fedcd446d">readFileToBuffer</a>(const std::string &amp;file_path, std::vector&lt; unsigned char &gt; &amp;buffer)</td><td class="entry"><a class="el" href="classyage_1_1IoManager.html">yage::IoManager</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1IoManager.html b/classyage_1_1IoManager.html
index 566012bd..963a167e 100644
--- a/classyage_1_1IoManager.html
+++ b/classyage_1_1IoManager.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1IoManager.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1IoManager.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1IoManager.html">IoManager</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
@@ -161,15 +145,11 @@ Static Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="iomanager_8cpp.html">iomanager.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1IoManager.html">IoManager</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1IoManager.js b/classyage_1_1IoManager.js
deleted file mode 100644
index c858e019..00000000
--- a/classyage_1_1IoManager.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1IoManager =
-[
- [ "readFileToBuffer", "classyage_1_1IoManager.html#a75d13ca634df592e44e4152fedcd446d", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1LogMessage-members.html b/classyage_1_1LogMessage-members.html
index 170b6b56..1c3e78eb 100644
--- a/classyage_1_1LogMessage-members.html
+++ b/classyage_1_1LogMessage-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1LogMessage.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogMessage.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::LogMessage Member List</div> </div>
@@ -121,14 +105,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogMessage.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1LogMessage.html#aed38ed794cdc0b3d7776f424570e92da">operator=</a>(LogMessage &amp;&amp;msg)=delete</td><td class="entry"><a class="el" href="classyage_1_1LogMessage.html">yage::LogMessage</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1LogMessage.html#af82ed7ceef5cfdac54ad2e176deb9fca">~LogMessage</a>()</td><td class="entry"><a class="el" href="classyage_1_1LogMessage.html">yage::LogMessage</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1LogMessage.html b/classyage_1_1LogMessage.html
index 10d1dddb..fd64dc54 100644
--- a/classyage_1_1LogMessage.html
+++ b/classyage_1_1LogMessage.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1LogMessage.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogMessage.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -293,15 +277,11 @@ template&lt;typename T &gt; </div>
<li>yage/core/<a class="el" href="logmessage_8cpp.html">logmessage.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1LogMessage.js b/classyage_1_1LogMessage.js
deleted file mode 100644
index 5c1ddeaf..00000000
--- a/classyage_1_1LogMessage.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var classyage_1_1LogMessage =
-[
- [ "Meta", "structyage_1_1LogMessage_1_1Meta.html", "structyage_1_1LogMessage_1_1Meta" ],
- [ "~LogMessage", "classyage_1_1LogMessage.html#af82ed7ceef5cfdac54ad2e176deb9fca", null ],
- [ "LogMessage", "classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be", null ],
- [ "operator<<", "classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90", null ],
- [ "operator<<", "classyage_1_1LogMessage.html#a855e0e72055f785def530feaf27cbeab", null ],
- [ "operator=", "classyage_1_1LogMessage.html#a31eb7ca394acbcfedca104e709f1c4ae", null ],
- [ "operator=", "classyage_1_1LogMessage.html#aed38ed794cdc0b3d7776f424570e92da", null ],
- [ "Logger", "classyage_1_1LogMessage.html#aff02b76416d2846736b7ecd798921a0a", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1LogSink-members.html b/classyage_1_1LogSink-members.html
index c20f7d6c..eb9e89ac 100644
--- a/classyage_1_1LogSink-members.html
+++ b/classyage_1_1LogSink-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1LogSink.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogSink.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogSink.html">LogSink</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::LogSink Member List</div> </div>
@@ -121,14 +105,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogSink.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1LogSink.html#abe2e73398ecb925233b50be5d15e20f9">operator==</a>(const LogSink &amp;sink)</td><td class="entry"><a class="el" href="classyage_1_1LogSink.html">yage::LogSink</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1LogSink.html#ac41716cf03dac6311cb7287c9edf8a8d">write</a>(const LogMessage::Meta &amp;meta, const std::string &amp;msg) const </td><td class="entry"><a class="el" href="classyage_1_1LogSink.html">yage::LogSink</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1LogSink.html b/classyage_1_1LogSink.html
index e7049c4b..870227fd 100644
--- a/classyage_1_1LogSink.html
+++ b/classyage_1_1LogSink.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1LogSink.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1LogSink.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogSink.html">LogSink</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -266,15 +250,11 @@ template&lt;typename T &gt; </div>
<li>yage/core/<a class="el" href="logsink_8cpp.html">logsink.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogSink.html">LogSink</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1LogSink.js b/classyage_1_1LogSink.js
deleted file mode 100644
index f954cc67..00000000
--- a/classyage_1_1LogSink.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var classyage_1_1LogSink =
-[
- [ "LogSink", "classyage_1_1LogSink.html#ab7b70959364771b105c0dffa0b64c38e", null ],
- [ "LogSink", "classyage_1_1LogSink.html#a8583ac57ebff98ab38c613c03b5bfbba", null ],
- [ "LogSink", "classyage_1_1LogSink.html#aadebaf552b839879189965faf7b504cf", null ],
- [ "operator=", "classyage_1_1LogSink.html#a1ba5b4000f07f581e0d0c2babb2811dc", null ],
- [ "operator=", "classyage_1_1LogSink.html#a43a7bf025e46197b541f186e16209356", null ],
- [ "operator==", "classyage_1_1LogSink.html#abe2e73398ecb925233b50be5d15e20f9", null ],
- [ "write", "classyage_1_1LogSink.html#ac41716cf03dac6311cb7287c9edf8a8d", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Logger-members.html b/classyage_1_1Logger-members.html
index 296b5aaa..77b11dc1 100644
--- a/classyage_1_1Logger-members.html
+++ b/classyage_1_1Logger-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Logger.html">Logger</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Logger Member List</div> </div>
@@ -125,14 +109,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Logger.html#aac48688c66402e9bc63c4871641ab245">remove</a>(const LogSink &amp;sink)</td><td class="entry"><a class="el" href="classyage_1_1Logger.html">yage::Logger</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Logger.html#a2ce5eb7eb1b108e38c1b90655999a8eb">setLevel</a>(LogLevel min_level)</td><td class="entry"><a class="el" href="classyage_1_1Logger.html">yage::Logger</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Logger.html b/classyage_1_1Logger.html
index 2ce4a45b..5640877c 100644
--- a/classyage_1_1Logger.html
+++ b/classyage_1_1Logger.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Logger.html">Logger</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -115,10 +99,6 @@ $(document).ready(function(){initNavTree('classyage_1_1Logger.html','');});
</div><!--header-->
<div class="contents">
-<p><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
-
- <a href="classyage_1_1Logger.html#details">More...</a></p>
-
<p><code>#include &lt;<a class="el" href="logger_8h_source.html">logger.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -149,19 +129,7 @@ Static Public Member Functions</h2></td></tr>
<tr class="memitem:ad165738c5b738d80a14b0ee1319cae2e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classyage_1_1Logger.html">Logger</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">instance</a> ()</td></tr>
<tr class="separator:ad165738c5b738d80a14b0ee1319cae2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
-<p>Aynchronous logging is built into the YAGE library, which can be used to log events in the game and also debug the game by using the debug output that the game engine produces. This can help if for example, a texture is being loaded.</p>
-<h3>Log levels</h3>
-<p>The logger has five different levels that can be assigned to a message. These are, from lowest to highest severity, <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15">LogLevel::DEBUG</a></code>, <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">LogLevel::INFO</a></code>, <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">LogLevel::WARNING</a></code>, <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5">LogLevel::ERROR</a></code> and <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">LogLevel::FATAL</a></code>. Messages that the developer then wants to write to the logs can take any of these severities and the developer can then decide what the minimum severity is that the logger should log. By default, the logger will log anything that is above <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">LogLevel::INFO</a></code>.</p>
-<h3>Using the <a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a> in your Game</h3>
-<p>There are a few preprocessor definitions to make the use of the logger as simple as possible. First of all, there is a definition to get the instance of the current global logger, which can then be used to set a different minimum display level. This definition is <code>yLogger</code>, and an example of how to use it to change the default output level can be seen below</p>
-<p>``` c++ yLogger.setLevel(yage::LogLevel::ERROR); ```</p>
-<p>The above code changes the global logger so that it will only output things that are an error or fatal and make the engine crash.</p>
-<p>Other preprocessor definitions are <code>yLogDebug</code>, <code>yLogInfo</code>, <code>yLogWarning</code>, <code>yLogError</code> and <code>yLogFatal</code>. These return an object that is similar to a buffer, but belongs to the main global logger <code>yLogger</code>. These are the definitions that should be used to print somehting to the main logger. For example</p>
-<p>``` c++ yLogWarning &lt;&lt; "This is a warning"; ```</p>
-<p>will print the message "This is a warning" with the severity of <code><a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">LogLevel::WARNING</a></code>. </p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a950c0c75b86bf330cf11a0ad29bd9a64"></a>
<div class="memitem">
<div class="memproto">
@@ -391,15 +359,11 @@ Static Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="logger_8cpp.html">logger.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Logger.html">Logger</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Logger.js b/classyage_1_1Logger.js
deleted file mode 100644
index f673a3a9..00000000
--- a/classyage_1_1Logger.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var classyage_1_1Logger =
-[
- [ "Logger", "classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64", null ],
- [ "Logger", "classyage_1_1Logger.html#a3d54590303257e9a8d1da26d59571352", null ],
- [ "Logger", "classyage_1_1Logger.html#a71f6ab0fa1e86d790553c0763a255b2b", null ],
- [ "Logger", "classyage_1_1Logger.html#acbd21a2da8b423e9f606c386cabac074", null ],
- [ "add", "classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd", null ],
- [ "clear", "classyage_1_1Logger.html#a036fcbfcb9d3428931ec5a11237501a8", null ],
- [ "flush", "classyage_1_1Logger.html#afe5dc1d30d3fd2599a119455672d6e00", null ],
- [ "instance", "classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e", null ],
- [ "operator()", "classyage_1_1Logger.html#a3c7d6d1a9ccf0397dc81350cef6782f2", null ],
- [ "remove", "classyage_1_1Logger.html#aac48688c66402e9bc63c4871641ab245", null ],
- [ "setLevel", "classyage_1_1Logger.html#a2ce5eb7eb1b108e38c1b90655999a8eb", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Matrix-members.html b/classyage_1_1Matrix-members.html
index 5c732921..a29d8ae6 100644
--- a/classyage_1_1Matrix-members.html
+++ b/classyage_1_1Matrix-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Matrix.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Matrix.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Matrix.html">Matrix</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Matrix&lt; Rows, Cols, Type &gt; Member List</div> </div>
@@ -129,14 +113,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Matrix.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Matrix.html#a0cc8e242b2e8319789aae0e1d81834a1">rowSize</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Matrix.html">yage::Matrix&lt; Rows, Cols, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Matrix.html#a07678d7007e89487c7168df84f2a4fa8">toString</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Matrix.html">yage::Matrix&lt; Rows, Cols, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Matrix.html b/classyage_1_1Matrix.html
index b3384b84..d9b540f1 100644
--- a/classyage_1_1Matrix.html
+++ b/classyage_1_1Matrix.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Matrix.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Matrix.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Matrix.html">Matrix</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -174,15 +158,6 @@ Friends</h2></td></tr>
class yage::Matrix&lt; Rows, Cols, Type &gt;</h3>
<p>Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes. </p>
-<h1>Matrix Class </h1>
-<p>The matrix class is a templated class which implements a mathematical Matrix.</p>
-<h2>Usage Guide </h2>
-<p>The class can be instantiated</p>
-<h2>Example Code </h2>
-<p>Creating a Matrix and performing operations on it.</p>
-<p>``` #include &lt;YAGE/Math/matrix.hpp&gt;</p>
-<p>int main(int, char **) { yage::Matrix&lt;2, 2, int&gt; mat1 {{1, 2, 3, 4}}; yage::Matrix&lt;2, 2, int&gt; mat2 {{5, 6, 7, 8}};</p>
-<p>int dot = yage::math::dot(mat1, mat2); return 0; } ``` </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a73b7d1f94f4f72a2294b71b3a35794ad"></a>
<div class="memitem">
@@ -604,15 +579,11 @@ template&lt;int Rows, int Cols, class Type&gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Matrix.html">Matrix</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Matrix.js b/classyage_1_1Matrix.js
deleted file mode 100644
index 0aa0acd1..00000000
--- a/classyage_1_1Matrix.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var classyage_1_1Matrix =
-[
- [ "Matrix", "classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad", null ],
- [ "Matrix", "classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b", null ],
- [ "begin", "classyage_1_1Matrix.html#a83d77d3a40ced5e2b703a6d66b6e6055", null ],
- [ "colSize", "classyage_1_1Matrix.html#a2148cd52008892765ad90250c68afba1", null ],
- [ "end", "classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851", null ],
- [ "getCol", "classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b", null ],
- [ "getRow", "classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8", null ],
- [ "operator+=", "classyage_1_1Matrix.html#a8b7e0913efdb5e8c9ff39df4c4f36228", null ],
- [ "operator-=", "classyage_1_1Matrix.html#acc2d0763f060c923ce53b37143d0a7bb", null ],
- [ "operator[]", "classyage_1_1Matrix.html#a89e826d2c6646002cfae23dde7f61145", null ],
- [ "operator[]", "classyage_1_1Matrix.html#a0e989030df9ebc7e3885a7bc811a45c6", null ],
- [ "rowSize", "classyage_1_1Matrix.html#a0cc8e242b2e8319789aae0e1d81834a1", null ],
- [ "toString", "classyage_1_1Matrix.html#a07678d7007e89487c7168df84f2a4fa8", null ],
- [ "details::Row< Rows, Cols, Type >", "classyage_1_1Matrix.html#a9e9cbf0fd7c768696ef909bdac1a706d", null ],
- [ "data_", "classyage_1_1Matrix.html#a0ab11922319366f6e74f6e9e7d7abeed", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1ParticleBody-members.html b/classyage_1_1ParticleBody-members.html
index e3c39658..822ce30a 100644
--- a/classyage_1_1ParticleBody-members.html
+++ b/classyage_1_1ParticleBody-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ParticleBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ParticleBody.html','');})
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ParticleBody.html">ParticleBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::ParticleBody Member List</div> </div>
@@ -127,14 +111,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ParticleBody.html','');})
<tr><td class="entry"><a class="el" href="classyage_1_1Body.html#a8a800cef0fb3561332d4a97c790e7225">xPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364">yPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ParticleBody.html b/classyage_1_1ParticleBody.html
index fbf3770b..edc9a51c 100644
--- a/classyage_1_1ParticleBody.html
+++ b/classyage_1_1ParticleBody.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ParticleBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ParticleBody.html','');})
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ParticleBody.html">ParticleBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -258,15 +242,11 @@ Additional Inherited Members</h2></td></tr>
<li>yage/physics/<a class="el" href="particlebody_8cpp.html">particlebody.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ParticleBody.html">ParticleBody</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ParticleBody.js b/classyage_1_1ParticleBody.js
deleted file mode 100644
index 6e5a762b..00000000
--- a/classyage_1_1ParticleBody.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classyage_1_1ParticleBody =
-[
- [ "ParticleBody", "classyage_1_1ParticleBody.html#ae20aad802b5620597d0521663061efc0", null ],
- [ "applyForce", "classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b", null ],
- [ "update", "classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1ParticleBody.png b/classyage_1_1ParticleBody.png
index 1df7c42f..80040da3 100644
--- a/classyage_1_1ParticleBody.png
+++ b/classyage_1_1ParticleBody.png
Binary files differ
diff --git a/classyage_1_1Rectangle-members.html b/classyage_1_1Rectangle-members.html
index 77fdb16d..b52f7b2b 100644
--- a/classyage_1_1Rectangle-members.html
+++ b/classyage_1_1Rectangle-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Rectangle.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Rectangle.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Rectangle.html">Rectangle</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Rectangle Member List</div> </div>
@@ -117,14 +101,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Rectangle.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e">Rectangle</a>(glm::vec4 position)</td><td class="entry"><a class="el" href="classyage_1_1Rectangle.html">yage::Rectangle</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891">render</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Rectangle.html">yage::Rectangle</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Rectangle.html b/classyage_1_1Rectangle.html
index 5321928f..1625e1d6 100644
--- a/classyage_1_1Rectangle.html
+++ b/classyage_1_1Rectangle.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Rectangle.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Rectangle.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Rectangle.html">Rectangle</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -184,15 +168,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="rectangle_8cpp.html">rectangle.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Rectangle.html">Rectangle</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Rectangle.js b/classyage_1_1Rectangle.js
deleted file mode 100644
index 2781d91b..00000000
--- a/classyage_1_1Rectangle.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var classyage_1_1Rectangle =
-[
- [ "Rectangle", "classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e", null ],
- [ "render", "classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Rectangle.png b/classyage_1_1Rectangle.png
index 66e49a59..c6ba4f2d 100644
--- a/classyage_1_1Rectangle.png
+++ b/classyage_1_1Rectangle.png
Binary files differ
diff --git a/classyage_1_1RectangleCollider-members.html b/classyage_1_1RectangleCollider-members.html
index e5943e32..e3efc0ec 100644
--- a/classyage_1_1RectangleCollider-members.html
+++ b/classyage_1_1RectangleCollider-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1RectangleCollider.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RectangleCollider.html','
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RectangleCollider.html">RectangleCollider</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::RectangleCollider Member List</div> </div>
@@ -120,14 +104,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RectangleCollider.html','
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1RectangleCollider.html#af9e0964655073b0a190c9d06b449a969">RectangleCollider</a>(const glm::vec2 &amp;position, const glm::vec2 &amp;size)</td><td class="entry"><a class="el" href="classyage_1_1RectangleCollider.html">yage::RectangleCollider</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308">size_</a></td><td class="entry"><a class="el" href="classyage_1_1Collider.html">yage::Collider</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1RectangleCollider.html b/classyage_1_1RectangleCollider.html
index ddea7523..6e099b1c 100644
--- a/classyage_1_1RectangleCollider.html
+++ b/classyage_1_1RectangleCollider.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1RectangleCollider.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RectangleCollider.html','
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RectangleCollider.html">RectangleCollider</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -230,15 +214,11 @@ Additional Inherited Members</h2></td></tr>
<li>yage/physics/<a class="el" href="rectanglecollider_8cpp.html">rectanglecollider.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RectangleCollider.html">RectangleCollider</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1RectangleCollider.js b/classyage_1_1RectangleCollider.js
deleted file mode 100644
index e61e60ba..00000000
--- a/classyage_1_1RectangleCollider.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classyage_1_1RectangleCollider =
-[
- [ "RectangleCollider", "classyage_1_1RectangleCollider.html#af9e0964655073b0a190c9d06b449a969", null ],
- [ "collides", "classyage_1_1RectangleCollider.html#a81e825cf009a437bc0f61b846cac66f6", null ],
- [ "inside", "classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1RectangleCollider.png b/classyage_1_1RectangleCollider.png
index d6857b7c..3bcc769a 100644
--- a/classyage_1_1RectangleCollider.png
+++ b/classyage_1_1RectangleCollider.png
Binary files differ
diff --git a/classyage_1_1ResourceManager-members.html b/classyage_1_1ResourceManager-members.html
index d7ea7127..049164d0 100644
--- a/classyage_1_1ResourceManager-members.html
+++ b/classyage_1_1ResourceManager-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ResourceManager.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ResourceManager.html','')
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ResourceManager.html">ResourceManager</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::ResourceManager Member List</div> </div>
@@ -115,14 +99,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ResourceManager.html','')
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc">getTexture</a>(const std::string &amp;texture_path, int x=1, int y=1)</td><td class="entry"><a class="el" href="classyage_1_1ResourceManager.html">yage::ResourceManager</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ResourceManager.html b/classyage_1_1ResourceManager.html
index 192aada6..201c50c7 100644
--- a/classyage_1_1ResourceManager.html
+++ b/classyage_1_1ResourceManager.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1ResourceManager.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1ResourceManager.html','')
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ResourceManager.html">ResourceManager</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
@@ -167,15 +151,11 @@ Static Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="resourcemanager_8cpp.html">resourcemanager.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1ResourceManager.html">ResourceManager</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1ResourceManager.js b/classyage_1_1ResourceManager.js
deleted file mode 100644
index 434fd832..00000000
--- a/classyage_1_1ResourceManager.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1ResourceManager =
-[
- [ "getTexture", "classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1RigidBody-members.html b/classyage_1_1RigidBody-members.html
index 65ed0bc2..4f99eba8 100644
--- a/classyage_1_1RigidBody-members.html
+++ b/classyage_1_1RigidBody-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1RigidBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RigidBody.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RigidBody.html">RigidBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::RigidBody Member List</div> </div>
@@ -128,14 +112,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RigidBody.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Body.html#a8a800cef0fb3561332d4a97c790e7225">xPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364">yPosition</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Body.html">yage::Body</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1RigidBody.html b/classyage_1_1RigidBody.html
index 216b1579..5f6ba753 100644
--- a/classyage_1_1RigidBody.html
+++ b/classyage_1_1RigidBody.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1RigidBody.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1RigidBody.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RigidBody.html">RigidBody</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -209,15 +193,11 @@ Additional Inherited Members</h2></td></tr>
<li>yage/physics/<a class="el" href="rigidbody_8cpp.html">rigidbody.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1RigidBody.html">RigidBody</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1RigidBody.js b/classyage_1_1RigidBody.js
deleted file mode 100644
index 1cc8d95c..00000000
--- a/classyage_1_1RigidBody.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1RigidBody =
-[
- [ "RigidBody", "classyage_1_1RigidBody.html#aed946934f970694c6f6840b09600a606", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1RigidBody.png b/classyage_1_1RigidBody.png
index bfa1f2e1..c6fa27ca 100644
--- a/classyage_1_1RigidBody.png
+++ b/classyage_1_1RigidBody.png
Binary files differ
diff --git a/classyage_1_1Shader-members.html b/classyage_1_1Shader-members.html
index b8e56be4..a7f384f8 100644
--- a/classyage_1_1Shader-members.html
+++ b/classyage_1_1Shader-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Shader.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shader.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shader.html">Shader</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Shader Member List</div> </div>
@@ -124,14 +108,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shader.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c">use</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Shader.html">yage::Shader</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd">~Shader</a>()</td><td class="entry"><a class="el" href="classyage_1_1Shader.html">yage::Shader</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Shader.html b/classyage_1_1Shader.html
index 68534505..1bc1e7e3 100644
--- a/classyage_1_1Shader.html
+++ b/classyage_1_1Shader.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Shader.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shader.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shader.html">Shader</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -383,15 +367,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="shader_8cpp.html">shader.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shader.html">Shader</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Shader.js b/classyage_1_1Shader.js
deleted file mode 100644
index e622dd76..00000000
--- a/classyage_1_1Shader.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var classyage_1_1Shader =
-[
- [ "Shader", "classyage_1_1Shader.html#a34fe30eb6e6d595c1996e8ea6fb3961a", null ],
- [ "Shader", "classyage_1_1Shader.html#a1a006dcb52a4fb9f1dc61df68d3676f5", null ],
- [ "Shader", "classyage_1_1Shader.html#adf6dc3a526921d62b55a552f38958dd2", null ],
- [ "~Shader", "classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd", null ],
- [ "operator=", "classyage_1_1Shader.html#a5d966c327ae0749ca5758880b684103a", null ],
- [ "operator=", "classyage_1_1Shader.html#af94e7c75abb18015ade6126465a5fe05", null ],
- [ "setUniform", "classyage_1_1Shader.html#ac9bff8500e2adfa1745c843bc612f215", null ],
- [ "setUniform", "classyage_1_1Shader.html#a1a637a37d3e72fe1cd53602e80ab23ab", null ],
- [ "setUniform", "classyage_1_1Shader.html#a96c50a15f45d064f43d1f01e84105e78", null ],
- [ "use", "classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Shape-members.html b/classyage_1_1Shape-members.html
index bcedd5eb..a0044086 100644
--- a/classyage_1_1Shape-members.html
+++ b/classyage_1_1Shape-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Shape.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shape.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shape.html">Shape</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Shape Member List</div> </div>
@@ -116,14 +100,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shape.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e">draw</a>(SpriteBatch &amp;sp)=0</td><td class="entry"><a class="el" href="classyage_1_1Drawable.html">yage::Drawable</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539">render</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Shape.html">yage::Shape</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Shape.html b/classyage_1_1Shape.html
index e05ad146..9267a988 100644
--- a/classyage_1_1Shape.html
+++ b/classyage_1_1Shape.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Shape.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Shape.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shape.html">Shape</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -164,15 +148,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="shape_8h_source.html">shape.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Shape.html">Shape</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Shape.js b/classyage_1_1Shape.js
deleted file mode 100644
index 184d37cc..00000000
--- a/classyage_1_1Shape.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var classyage_1_1Shape =
-[
- [ "render", "classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Shape.png b/classyage_1_1Shape.png
index 03bbb1c3..7e5208f4 100644
--- a/classyage_1_1Shape.png
+++ b/classyage_1_1Shape.png
Binary files differ
diff --git a/classyage_1_1Space-members.html b/classyage_1_1Space-members.html
new file mode 100644
index 00000000..a89e81e2
--- /dev/null
+++ b/classyage_1_1Space-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Space.html">Space</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">yage::Space Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classyage_1_1Space.html">yage::Space</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">createEntity</a>()</td><td class="entry"><a class="el" href="classyage_1_1Space.html">yage::Space</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">Space</a>()</td><td class="entry"><a class="el" href="classyage_1_1Space.html">yage::Space</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1Space.html b/classyage_1_1Space.html
new file mode 100644
index 00000000..b3a7bf6b
--- /dev/null
+++ b/classyage_1_1Space.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage::Space Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Space.html">Space</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classyage_1_1Space-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">yage::Space Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them.
+ <a href="classyage_1_1Space.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="space_8h_source.html">space.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a40c248478ae521bb4e0d5119002cf8e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">Space</a> ()</td></tr>
+<tr class="memdesc:a40c248478ae521bb4e0d5119002cf8e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default instance for a space. <a href="#a40c248478ae521bb4e0d5119002cf8e9">More...</a><br/></td></tr>
+<tr class="separator:a40c248478ae521bb4e0d5119002cf8e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41bc332ffb3042c0872ede8c53ff1fa4"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">createEntity</a> ()</td></tr>
+<tr class="memdesc:a41bc332ffb3042c0872ede8c53ff1fa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an entity that will belong to this space, and return the handle to the user. <a href="#a41bc332ffb3042c0872ede8c53ff1fa4">More...</a><br/></td></tr>
+<tr class="separator:a41bc332ffb3042c0872ede8c53ff1fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them. </p>
+<p>There can be multiple instances of a space, which can be used, for example, for different levels in the game that can be loaded separately, or a game menu that can be loaded above the other spaces when the user presses on pause. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a40c248478ae521bb4e0d5119002cf8e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::Space::Space </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default instance for a space. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a41bc332ffb3042c0872ede8c53ff1fa4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned yage::Space::createEntity </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Create an entity that will belong to this space, and return the handle to the user. </p>
+<p>The <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> class itself should not be visible to the user, as the user only needs to worry about the handle when referring to the <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> and changing it. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>yage/engine/<a class="el" href="space_8h_source.html">space.h</a></li>
+<li>yage/engine/<a class="el" href="space_8cpp.html">space.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1Sprite-members.html b/classyage_1_1Sprite-members.html
index 196bb106..2a1d0560 100644
--- a/classyage_1_1Sprite-members.html
+++ b/classyage_1_1Sprite-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Sprite.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Sprite.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Sprite.html">Sprite</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Sprite Member List</div> </div>
@@ -122,14 +106,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Sprite.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1">Sprite</a>(Sprite &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classyage_1_1Sprite.html">yage::Sprite</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Sprite.html#aa2f833e040940616fa17ee8f02f8cab2">~Sprite</a>()</td><td class="entry"><a class="el" href="classyage_1_1Sprite.html">yage::Sprite</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Sprite.html b/classyage_1_1Sprite.html
index c7dad307..b35fa938 100644
--- a/classyage_1_1Sprite.html
+++ b/classyage_1_1Sprite.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Sprite.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Sprite.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Sprite.html">Sprite</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -337,15 +321,11 @@ Public Member Functions</h2></td></tr>
<li>yage/render/<a class="el" href="sprite_8cpp.html">sprite.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Sprite.html">Sprite</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Sprite.js b/classyage_1_1Sprite.js
deleted file mode 100644
index e259dffa..00000000
--- a/classyage_1_1Sprite.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var classyage_1_1Sprite =
-[
- [ "Sprite", "classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987", null ],
- [ "Sprite", "classyage_1_1Sprite.html#aa5a7958e17f1d042226b91fb1829642e", null ],
- [ "Sprite", "classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1", null ],
- [ "~Sprite", "classyage_1_1Sprite.html#aa2f833e040940616fa17ee8f02f8cab2", null ],
- [ "draw", "classyage_1_1Sprite.html#a8eed26f4fa57b3ad47d791564233ee40", null ],
- [ "init", "classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1", null ],
- [ "operator=", "classyage_1_1Sprite.html#a97dd80e05efb9399ee8471ff40a77bee", null ],
- [ "operator=", "classyage_1_1Sprite.html#a3fe5615022d2b157b9e6375197254897", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1SpriteBatch-members.html b/classyage_1_1SpriteBatch-members.html
index 611cf116..08cb5dd5 100644
--- a/classyage_1_1SpriteBatch-members.html
+++ b/classyage_1_1SpriteBatch-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SpriteBatch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteBatch.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteBatch.html">SpriteBatch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::SpriteBatch Member List</div> </div>
@@ -125,14 +109,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteBatch.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1SpriteBatch.html#a7f18a506f4188acd2219da8147dc0e1e">SpriteBatch</a>(SpriteBatch &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classyage_1_1SpriteBatch.html">yage::SpriteBatch</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a">~SpriteBatch</a>()</td><td class="entry"><a class="el" href="classyage_1_1SpriteBatch.html">yage::SpriteBatch</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SpriteBatch.html b/classyage_1_1SpriteBatch.html
index df6340d2..7502f869 100644
--- a/classyage_1_1SpriteBatch.html
+++ b/classyage_1_1SpriteBatch.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SpriteBatch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteBatch.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteBatch.html">SpriteBatch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -388,15 +372,11 @@ Static Public Attributes</h2></td></tr>
<li>yage/render/<a class="el" href="spritebatch_8cpp.html">spritebatch.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteBatch.html">SpriteBatch</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SpriteBatch.js b/classyage_1_1SpriteBatch.js
deleted file mode 100644
index c35d41df..00000000
--- a/classyage_1_1SpriteBatch.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var classyage_1_1SpriteBatch =
-[
- [ "SpriteBatch", "classyage_1_1SpriteBatch.html#afda50a8a2a6c9ffd1b9d962fae223f8a", null ],
- [ "SpriteBatch", "classyage_1_1SpriteBatch.html#a30a46a7182235a739916d540781af652", null ],
- [ "SpriteBatch", "classyage_1_1SpriteBatch.html#a7f18a506f4188acd2219da8147dc0e1e", null ],
- [ "~SpriteBatch", "classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a", null ],
- [ "begin", "classyage_1_1SpriteBatch.html#af6293aac69e1124199297e5b921a4872", null ],
- [ "draw", "classyage_1_1SpriteBatch.html#acf88f98ccc7ce8effd2acfded27b6af0", null ],
- [ "end", "classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632", null ],
- [ "operator=", "classyage_1_1SpriteBatch.html#a1b365d89c096d7fa138e1c7091f1d737", null ],
- [ "operator=", "classyage_1_1SpriteBatch.html#a204782dd15c82376555ad0b049c4167f", null ],
- [ "render", "classyage_1_1SpriteBatch.html#a195c4aca60815d413c65dce99389282d", null ],
- [ "NUM_VERTICES", "classyage_1_1SpriteBatch.html#a6e01d11880a841b153e950aa8307b1a5", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1SpriteSheet-members.html b/classyage_1_1SpriteSheet-members.html
index 0720ce24..d8ffb399 100644
--- a/classyage_1_1SpriteSheet-members.html
+++ b/classyage_1_1SpriteSheet-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SpriteSheet.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteSheet.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteSheet.html">SpriteSheet</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::SpriteSheet Member List</div> </div>
@@ -117,14 +101,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteSheet.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0">sprite</a>(std::string spriteName) const </td><td class="entry"><a class="el" href="classyage_1_1SpriteSheet.html">yage::SpriteSheet</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1SpriteSheet.html#a73db999ab17c4846f036eb47470176f6">SpriteSheet</a>(std::string pngFileName, std::string jsonFileName)</td><td class="entry"><a class="el" href="classyage_1_1SpriteSheet.html">yage::SpriteSheet</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SpriteSheet.html b/classyage_1_1SpriteSheet.html
index ec7fe4bd..06792c1d 100644
--- a/classyage_1_1SpriteSheet.html
+++ b/classyage_1_1SpriteSheet.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SpriteSheet.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SpriteSheet.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteSheet.html">SpriteSheet</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -190,15 +174,11 @@ Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="spritesheet_8cpp.html">spritesheet.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SpriteSheet.html">SpriteSheet</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SpriteSheet.js b/classyage_1_1SpriteSheet.js
deleted file mode 100644
index b1cf4ac0..00000000
--- a/classyage_1_1SpriteSheet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classyage_1_1SpriteSheet =
-[
- [ "SpriteSheet", "classyage_1_1SpriteSheet.html#a73db999ab17c4846f036eb47470176f6", null ],
- [ "fileContent", "classyage_1_1SpriteSheet.html#a50a04ebc989dbc63b0aa6d873da5ccd9", null ],
- [ "sprite", "classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1SyncQueue-members.html b/classyage_1_1SyncQueue-members.html
index a91b6da7..43586d68 100644
--- a/classyage_1_1SyncQueue-members.html
+++ b/classyage_1_1SyncQueue-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SyncQueue.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SyncQueue.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SyncQueue.html">SyncQueue</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::SyncQueue&lt; T &gt; Member List</div> </div>
@@ -121,14 +105,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SyncQueue.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b">SyncQueue</a>()=default</td><td class="entry"><a class="el" href="classyage_1_1SyncQueue.html">yage::SyncQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c">SyncQueue</a>(const SyncQueue &amp;)=delete</td><td class="entry"><a class="el" href="classyage_1_1SyncQueue.html">yage::SyncQueue&lt; T &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SyncQueue.html b/classyage_1_1SyncQueue.html
index d4fd5fb5..69932dc1 100644
--- a/classyage_1_1SyncQueue.html
+++ b/classyage_1_1SyncQueue.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1SyncQueue.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1SyncQueue.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SyncQueue.html">SyncQueue</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -287,15 +271,11 @@ template&lt;typename T&gt; </div>
<li>yage/util/<a class="el" href="syncqueue_8h_source.html">syncqueue.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1SyncQueue.html">SyncQueue</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1SyncQueue.js b/classyage_1_1SyncQueue.js
deleted file mode 100644
index e616f0c7..00000000
--- a/classyage_1_1SyncQueue.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var classyage_1_1SyncQueue =
-[
- [ "SyncQueue", "classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b", null ],
- [ "SyncQueue", "classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c", null ],
- [ "operator=", "classyage_1_1SyncQueue.html#a43e4ba65c8e367ed55da9b8e3e1567b6", null ],
- [ "pop", "classyage_1_1SyncQueue.html#a1f7f099e1347b82c1f2b72a5352ca05e", null ],
- [ "pop", "classyage_1_1SyncQueue.html#ab8a3c646e1d2f9adfcbcfbaa2e2a4b27", null ],
- [ "push", "classyage_1_1SyncQueue.html#a4ef8940b49b9c1b7a213fd38847370b1", null ],
- [ "push", "classyage_1_1SyncQueue.html#a4c01a855e97a46449a97c76634ef7678", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1System-members.html b/classyage_1_1System-members.html
new file mode 100644
index 00000000..624e76a5
--- /dev/null
+++ b/classyage_1_1System-members.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1System.html">System</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">yage::System Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classyage_1_1System.html">yage::System</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">init</a>()=0</td><td class="entry"><a class="el" href="classyage_1_1System.html">yage::System</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">update</a>(double dt)=0</td><td class="entry"><a class="el" href="classyage_1_1System.html">yage::System</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">~System</a>()=0</td><td class="entry"><a class="el" href="classyage_1_1System.html">yage::System</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1System.html b/classyage_1_1System.html
new file mode 100644
index 00000000..801e2ee8
--- /dev/null
+++ b/classyage_1_1System.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage::System Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1System.html">System</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classyage_1_1System-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">yage::System Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine.
+ <a href="classyage_1_1System.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="system_8h_source.html">system.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a32e00cf7f9b517a43e7db16d2aaa9b57"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">~System</a> ()=0</td></tr>
+<tr class="memdesc:a32e00cf7f9b517a43e7db16d2aaa9b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor to destroy all the objects that implement this properly. <a href="#a32e00cf7f9b517a43e7db16d2aaa9b57">More...</a><br/></td></tr>
+<tr class="separator:a32e00cf7f9b517a43e7db16d2aaa9b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad697e043fcf7dbcf77821f49073f5af9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">init</a> ()=0</td></tr>
+<tr class="memdesc:ad697e043fcf7dbcf77821f49073f5af9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the system. <a href="#ad697e043fcf7dbcf77821f49073f5af9">More...</a><br/></td></tr>
+<tr class="separator:ad697e043fcf7dbcf77821f49073f5af9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a882cfa13fc76d106c9d0ca68b17ff1ff"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">update</a> (double dt)=0</td></tr>
+<tr class="memdesc:a882cfa13fc76d106c9d0ca68b17ff1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the system at each interval using the time step. <a href="#a882cfa13fc76d106c9d0ca68b17ff1ff">More...</a><br/></td></tr>
+<tr class="separator:a882cfa13fc76d106c9d0ca68b17ff1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a32e00cf7f9b517a43e7db16d2aaa9b57"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">yage::System::~System </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual destructor to destroy all the objects that implement this properly. </p>
+<p>Implement the default destructor, but leaving it as purely virtual in the definition of the abstract class.</p>
+<p>This is so that the classes that implement the abstract class have to implement a desctructor, but at the same time, that there is no undefined behavious when the stack unwinds to the system and calls the system destructor. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad697e043fcf7dbcf77821f49073f5af9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void yage::System::init </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Initializes the system. </p>
+<p>Good practice to have this function instead using the constructor. </p>
+
+</div>
+</div>
+<a class="anchor" id="a882cfa13fc76d106c9d0ca68b17ff1ff"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void yage::System::update </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>dt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Updates the system at each interval using the time step. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">dt</td><td>The time difference between the previous frame and the current one. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>yage/engine/<a class="el" href="system_8h_source.html">system.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/classyage_1_1TextureCache-members.html b/classyage_1_1TextureCache-members.html
index aded535a..ccef794e 100644
--- a/classyage_1_1TextureCache-members.html
+++ b/classyage_1_1TextureCache-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1TextureCache.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1TextureCache.html','');})
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1TextureCache.html">TextureCache</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::TextureCache Member List</div> </div>
@@ -117,14 +101,11 @@ $(document).ready(function(){initNavTree('classyage_1_1TextureCache.html','');})
<tr><td class="entry"><a class="el" href="classyage_1_1TextureCache.html#abb785ce35eb847c02de67dc9e6e06bcd">getTextureFromSpriteSheet</a>()</td><td class="entry"><a class="el" href="classyage_1_1TextureCache.html">yage::TextureCache</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1TextureCache.html#a5f6af0bd513dd393061b2d9d18362692">TextureCache</a>()=default</td><td class="entry"><a class="el" href="classyage_1_1TextureCache.html">yage::TextureCache</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1TextureCache.html b/classyage_1_1TextureCache.html
index 3f5c5bfe..a820a2cd 100644
--- a/classyage_1_1TextureCache.html
+++ b/classyage_1_1TextureCache.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1TextureCache.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1TextureCache.html','');})
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1TextureCache.html">TextureCache</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -202,15 +186,11 @@ Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="texturecache_8cpp.html">texturecache.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1TextureCache.html">TextureCache</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1TextureCache.js b/classyage_1_1TextureCache.js
deleted file mode 100644
index 633a3443..00000000
--- a/classyage_1_1TextureCache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classyage_1_1TextureCache =
-[
- [ "TextureCache", "classyage_1_1TextureCache.html#a5f6af0bd513dd393061b2d9d18362692", null ],
- [ "getTexture", "classyage_1_1TextureCache.html#ad4929640230f9a74fcd634416fe0974f", null ],
- [ "getTextureFromSpriteSheet", "classyage_1_1TextureCache.html#abb785ce35eb847c02de67dc9e6e06bcd", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Vector-members.html b/classyage_1_1Vector-members.html
index 4427a43b..3a6fa299 100644
--- a/classyage_1_1Vector-members.html
+++ b/classyage_1_1Vector-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector.html">Vector</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Vector&lt; Rows, Type &gt; Member List</div> </div>
@@ -131,14 +115,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Vector.html#a55fd6c60a95832ad4b68083071f9866f">Vector</a>(const Matrix&lt; Rows, 1, Type &gt; &amp;other)</td><td class="entry"><a class="el" href="classyage_1_1Vector.html">yage::Vector&lt; Rows, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Vector.html#aa291a8ee264f81165b529b7f3a0c265d">Vector</a>(const std::vector&lt; Type &gt; &amp;data)</td><td class="entry"><a class="el" href="classyage_1_1Vector.html">yage::Vector&lt; Rows, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector.html b/classyage_1_1Vector.html
index c26d6b34..cbdd5709 100644
--- a/classyage_1_1Vector.html
+++ b/classyage_1_1Vector.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector.html">Vector</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -345,15 +329,11 @@ template&lt;int Rows = 2, class Type = double&gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector.html">Vector</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector.js b/classyage_1_1Vector.js
deleted file mode 100644
index 0b54d8f3..00000000
--- a/classyage_1_1Vector.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classyage_1_1Vector =
-[
- [ "Vector", "classyage_1_1Vector.html#ac9b202913c03bde201e350e855fbbffa", null ],
- [ "Vector", "classyage_1_1Vector.html#a55fd6c60a95832ad4b68083071f9866f", null ],
- [ "Vector", "classyage_1_1Vector.html#aa291a8ee264f81165b529b7f3a0c265d", null ],
- [ "operator[]", "classyage_1_1Vector.html#a81efa1cb9d4ce8bb8c5cf9652a5650a2", null ],
- [ "operator[]", "classyage_1_1Vector.html#a54c22538916cfb3b838724b8f8662c35", null ],
- [ "toString", "classyage_1_1Vector.html#a956f7b6d02c0309adece311f59c8beae", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Vector.png b/classyage_1_1Vector.png
index ec1fc517..84e68746 100644
--- a/classyage_1_1Vector.png
+++ b/classyage_1_1Vector.png
Binary files differ
diff --git a/classyage_1_1Vector2-members.html b/classyage_1_1Vector2-members.html
index d52d63a8..91b3931b 100644
--- a/classyage_1_1Vector2-members.html
+++ b/classyage_1_1Vector2-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector2.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector2.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector2.html">Vector2</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Vector2&lt; Type &gt; Member List</div> </div>
@@ -139,14 +123,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector2.html','');});
<tr><td class="entry"><a class="el" href="classyage_1_1Vector2.html#a554645b415a76af47698985b7757f0c2">y</a>()</td><td class="entry"><a class="el" href="classyage_1_1Vector2.html">yage::Vector2&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Vector2.html#a216ac57d39572b46ab8307a7728e4456">y</a>() const </td><td class="entry"><a class="el" href="classyage_1_1Vector2.html">yage::Vector2&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector2.html b/classyage_1_1Vector2.html
index 9a4c65ea..265ffadc 100644
--- a/classyage_1_1Vector2.html
+++ b/classyage_1_1Vector2.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector2.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector2.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector2.html">Vector2</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -426,15 +410,11 @@ template&lt;typename Type = double&gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector2.html">Vector2</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector2.js b/classyage_1_1Vector2.js
deleted file mode 100644
index a5b0a087..00000000
--- a/classyage_1_1Vector2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var classyage_1_1Vector2 =
-[
- [ "Vector2", "classyage_1_1Vector2.html#a50c108903be424de1c41ce31fddd23ea", null ],
- [ "Vector2", "classyage_1_1Vector2.html#af69d534302a406bac419589e0a2f2917", null ],
- [ "Vector2", "classyage_1_1Vector2.html#a3ef3bc2954f387f1db2165a884765ad0", null ],
- [ "Vector2", "classyage_1_1Vector2.html#aacee766d18741a925a47b91fa0080822", null ],
- [ "x", "classyage_1_1Vector2.html#a5a777413b63e68dc5f797d31e3d7beaf", null ],
- [ "x", "classyage_1_1Vector2.html#a14a436185842f7375d02b57a37832740", null ],
- [ "y", "classyage_1_1Vector2.html#a554645b415a76af47698985b7757f0c2", null ],
- [ "y", "classyage_1_1Vector2.html#a216ac57d39572b46ab8307a7728e4456", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Vector2.png b/classyage_1_1Vector2.png
index 20f24356..1419db17 100644
--- a/classyage_1_1Vector2.png
+++ b/classyage_1_1Vector2.png
Binary files differ
diff --git a/classyage_1_1Vector3-members.html b/classyage_1_1Vector3-members.html
index be7d9594..84db5c76 100644
--- a/classyage_1_1Vector3-members.html
+++ b/classyage_1_1Vector3-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector3.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector3.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector3.html">Vector3</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Vector3&lt; Type &gt; Member List</div> </div>
@@ -140,14 +124,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector3.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Vector3.html#a163c42efd0a4f365abb612c031859820">z</a></td><td class="entry"><a class="el" href="classyage_1_1Vector3.html">yage::Vector3&lt; Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Vector3.html#ad8efd76556fe2ff568f81ce1d4dd1888">z</a>(this-&gt;data_[2])</td><td class="entry"><a class="el" href="classyage_1_1Vector3.html">yage::Vector3&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector3.html b/classyage_1_1Vector3.html
index 260a5cd7..639450d5 100644
--- a/classyage_1_1Vector3.html
+++ b/classyage_1_1Vector3.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector3.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector3.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector3.html">Vector3</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -417,15 +401,11 @@ template&lt;typename Type = double&gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector3.html">Vector3</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector3.js b/classyage_1_1Vector3.js
deleted file mode 100644
index e7bc875b..00000000
--- a/classyage_1_1Vector3.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var classyage_1_1Vector3 =
-[
- [ "Vector3", "classyage_1_1Vector3.html#a745b76ba3e49f5c73f53cb065ddf337b", null ],
- [ "Vector3", "classyage_1_1Vector3.html#ad30c9989f25ef241c59a6c59661daf3a", null ],
- [ "Vector3", "classyage_1_1Vector3.html#a36744e7ef6c50b117e4105f1752c93c0", null ],
- [ "x", "classyage_1_1Vector3.html#ae91b009b2e5e81163ebf80bf5bcbe7f0", null ],
- [ "y", "classyage_1_1Vector3.html#a9b984c33ac0a7d7ade6963baea0e5ee8", null ],
- [ "z", "classyage_1_1Vector3.html#ad8efd76556fe2ff568f81ce1d4dd1888", null ],
- [ "x", "classyage_1_1Vector3.html#aca2fa665275db5e0b842f64106b0c797", null ],
- [ "y", "classyage_1_1Vector3.html#a3076edb39227c1fcc77a8160fb9c5832", null ],
- [ "z", "classyage_1_1Vector3.html#a163c42efd0a4f365abb612c031859820", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Vector3.png b/classyage_1_1Vector3.png
index 85404b15..5106c770 100644
--- a/classyage_1_1Vector3.png
+++ b/classyage_1_1Vector3.png
Binary files differ
diff --git a/classyage_1_1Vector4-members.html b/classyage_1_1Vector4-members.html
index e659d92f..15553b8f 100644
--- a/classyage_1_1Vector4-members.html
+++ b/classyage_1_1Vector4-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector4.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector4.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector4.html">Vector4</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Vector4&lt; Type &gt; Member List</div> </div>
@@ -142,14 +126,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector4.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Vector4.html#ac1b2968c7a6a6e9f2c74507760b73cdc">z</a></td><td class="entry"><a class="el" href="classyage_1_1Vector4.html">yage::Vector4&lt; Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Vector4.html#aad3540315f15d69a84aa4573d3e1c583">z</a>(this-&gt;data_[2])</td><td class="entry"><a class="el" href="classyage_1_1Vector4.html">yage::Vector4&lt; Type &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector4.html b/classyage_1_1Vector4.html
index 6aad2def..c423aa05 100644
--- a/classyage_1_1Vector4.html
+++ b/classyage_1_1Vector4.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Vector4.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Vector4.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector4.html">Vector4</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -458,15 +442,11 @@ template&lt;typename Type = double&gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Vector4.html">Vector4</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Vector4.js b/classyage_1_1Vector4.js
deleted file mode 100644
index 0bf3d6ac..00000000
--- a/classyage_1_1Vector4.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var classyage_1_1Vector4 =
-[
- [ "Vector4", "classyage_1_1Vector4.html#ab6e8f6e88c13d3bbfa1a6591d97b7d03", null ],
- [ "Vector4", "classyage_1_1Vector4.html#ae40311bf406263427426a7de5108c6c1", null ],
- [ "Vector4", "classyage_1_1Vector4.html#a36537a95ca1764334fe9b9b1f001206d", null ],
- [ "w", "classyage_1_1Vector4.html#a111ecbf09543e8fafaf3aedef77d168d", null ],
- [ "x", "classyage_1_1Vector4.html#ad6d84a870f51573b60490591cdbd8b4c", null ],
- [ "y", "classyage_1_1Vector4.html#a0c7bf86ba48c9bda10e0605441bb8c3c", null ],
- [ "z", "classyage_1_1Vector4.html#aad3540315f15d69a84aa4573d3e1c583", null ],
- [ "w", "classyage_1_1Vector4.html#acf752077d460438407ed3c84fe199f63", null ],
- [ "x", "classyage_1_1Vector4.html#a4936ef80cc2726f6b20f525977339a13", null ],
- [ "y", "classyage_1_1Vector4.html#ae0609f2db5e14fe05fddd71ec09f4735", null ],
- [ "z", "classyage_1_1Vector4.html#ac1b2968c7a6a6e9f2c74507760b73cdc", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1Vector4.png b/classyage_1_1Vector4.png
index 52c18fa1..493b0c76 100644
--- a/classyage_1_1Vector4.png
+++ b/classyage_1_1Vector4.png
Binary files differ
diff --git a/classyage_1_1Window-members.html b/classyage_1_1Window-members.html
index 680a0334..ef2be8bf 100644
--- a/classyage_1_1Window-members.html
+++ b/classyage_1_1Window-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Window.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Window.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Window.html">Window</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Window Member List</div> </div>
@@ -128,14 +112,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Window.html','');});
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1Window.html#a4be115daea6c7473fca81623c547d821">Window</a>(Window &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classyage_1_1Window.html">yage::Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0">~Window</a>()</td><td class="entry"><a class="el" href="classyage_1_1Window.html">yage::Window</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Window.html b/classyage_1_1Window.html
index 1674efe5..d3654abe 100644
--- a/classyage_1_1Window.html
+++ b/classyage_1_1Window.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1Window.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1Window.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Window.html">Window</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -444,15 +428,11 @@ Public Member Functions</h2></td></tr>
<li>yage/core/<a class="el" href="window_8cpp.html">window.cpp</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1Window.html">Window</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1Window.js b/classyage_1_1Window.js
deleted file mode 100644
index a4df96c8..00000000
--- a/classyage_1_1Window.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var classyage_1_1Window =
-[
- [ "Window", "classyage_1_1Window.html#a7d7bd2f22e095df387e8b5cda2bb484e", null ],
- [ "Window", "classyage_1_1Window.html#a1225a2b5eff6d44a6bce3f0f5f10e2bf", null ],
- [ "Window", "classyage_1_1Window.html#a4be115daea6c7473fca81623c547d821", null ],
- [ "~Window", "classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0", null ],
- [ "clearBuffer", "classyage_1_1Window.html#a98e2a33820ad63b2c94c56e203ff6e58", null ],
- [ "create", "classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745", null ],
- [ "hide", "classyage_1_1Window.html#aa421df451f166dfe6441562e92b99115", null ],
- [ "keyPressed", "classyage_1_1Window.html#ae95d8670801c04af43da9e4fcc0e1006", null ],
- [ "operator=", "classyage_1_1Window.html#a5247a4164bf0006fe9f034cd27c5b6db", null ],
- [ "operator=", "classyage_1_1Window.html#a98c07656f90a6205f24dfe85ef1137de", null ],
- [ "pollEvents", "classyage_1_1Window.html#a1a311e27b1e588f0fce540ce040dcbd5", null ],
- [ "shouldClose", "classyage_1_1Window.html#a5e3b209289bc343609d809d5b7f23cc8", null ],
- [ "show", "classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34", null ],
- [ "swapBuffer", "classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359", null ]
-]; \ No newline at end of file
diff --git a/classyage_1_1details_1_1Row-members.html b/classyage_1_1details_1_1Row-members.html
index e3ae13c5..20cc6c58 100644
--- a/classyage_1_1details_1_1Row-members.html
+++ b/classyage_1_1details_1_1Row-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1details_1_1Row.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1details_1_1Row.html','');
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="classyage_1_1details_1_1Row.html">Row</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::details::Row&lt; Rows, Cols, Type &gt; Member List</div> </div>
@@ -117,14 +101,11 @@ $(document).ready(function(){initNavTree('classyage_1_1details_1_1Row.html','');
<tr><td class="entry"><a class="el" href="classyage_1_1details_1_1Row.html#adf2f7047871fdc78ba66d9d08cd07736">operator[]</a>(int col) const </td><td class="entry"><a class="el" href="classyage_1_1details_1_1Row.html">yage::details::Row&lt; Rows, Cols, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classyage_1_1details_1_1Row.html#a18904acbce1c6084bc25a753989b5f06">Row</a>(Matrix&lt; Rows, Cols, Type &gt; *parent, int index)</td><td class="entry"><a class="el" href="classyage_1_1details_1_1Row.html">yage::details::Row&lt; Rows, Cols, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1details_1_1Row.html b/classyage_1_1details_1_1Row.html
index ec0d3570..89e78dac 100644
--- a/classyage_1_1details_1_1Row.html
+++ b/classyage_1_1details_1_1Row.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('classyage_1_1details_1_1Row.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('classyage_1_1details_1_1Row.html','');
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="classyage_1_1details_1_1Row.html">Row</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -219,15 +203,11 @@ template&lt;int Rows, int Cols, class Type &gt; </div>
<li>yage/math/<a class="el" href="matrix_8h_source.html">matrix.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="classyage_1_1details_1_1Row.html">Row</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/classyage_1_1details_1_1Row.js b/classyage_1_1details_1_1Row.js
deleted file mode 100644
index 35437654..00000000
--- a/classyage_1_1details_1_1Row.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classyage_1_1details_1_1Row =
-[
- [ "Row", "classyage_1_1details_1_1Row.html#a18904acbce1c6084bc25a753989b5f06", null ],
- [ "operator[]", "classyage_1_1details_1_1Row.html#a703d4eee36d93b1227ad734bdcf27190", null ],
- [ "operator[]", "classyage_1_1details_1_1Row.html#adf2f7047871fdc78ba66d9d08cd07736", null ]
-]; \ No newline at end of file
diff --git a/closed.png b/closed.png
index 98cc2c90..d4a7003a 100644
--- a/closed.png
+++ b/closed.png
Binary files differ
diff --git a/collider_8h.html b/collider_8h.html
index 1d7dc290..4a6c79c7 100644
--- a/collider_8h.html
+++ b/collider_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('collider_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('collider_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="collider_8h.html">collider.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/collider_8h_source.html b/collider_8h_source.html
index 6ab9310a..b301bc28 100644
--- a/collider_8h_source.html
+++ b/collider_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('collider_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('collider_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">collider.h</div> </div>
@@ -151,15 +135,11 @@ $(document).ready(function(){initNavTree('collider_8h_source.html','');});
<div class="ttc" id="classyage_1_1Collider_html_ad7456f84c1acb4fd9ee0ea67c8ee7308"><div class="ttname"><a href="classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308">yage::Collider::size_</a></div><div class="ttdeci">glm::vec2 size_</div><div class="ttdef"><b>Definition:</b> collider.h:26</div></div>
<div class="ttc" id="classyage_1_1Collider_html"><div class="ttname"><a href="classyage_1_1Collider.html">yage::Collider</a></div><div class="ttdef"><b>Definition:</b> collider.h:19</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="collider_8h.html">collider.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/collisionbody_8h.html b/collisionbody_8h.html
index 8e9ed25e..1d3a4c5a 100644
--- a/collisionbody_8h.html
+++ b/collisionbody_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('collisionbody_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('collisionbody_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="collisionbody_8h.html">collisionbody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/collisionbody_8h_source.html b/collisionbody_8h_source.html
index 2564ee63..27ea0b47 100644
--- a/collisionbody_8h_source.html
+++ b/collisionbody_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('collisionbody_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('collisionbody_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">collisionbody.h</div> </div>
@@ -135,15 +119,11 @@ $(document).ready(function(){initNavTree('collisionbody_8h_source.html','');});
<div class="ttc" id="classyage_1_1CollisionBody_html_a758b2f867f276f4c7e02ebda2cd04c8b"><div class="ttname"><a href="classyage_1_1CollisionBody.html#a758b2f867f276f4c7e02ebda2cd04c8b">yage::CollisionBody::~CollisionBody</a></div><div class="ttdeci">virtual ~CollisionBody()</div></div>
<div class="ttc" id="classyage_1_1CollisionBody_html"><div class="ttname"><a href="classyage_1_1CollisionBody.html">yage::CollisionBody</a></div><div class="ttdef"><b>Definition:</b> collisionbody.h:19</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="collisionbody_8h.html">collisionbody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/component_8h.html b/component_8h.html
new file mode 100644
index 00000000..d52ddd6f
--- /dev/null
+++ b/component_8h.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/component.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">component.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+
+<p><a href="component_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComponent.html">Component</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a265b76591becf42b342804bbc4a79507"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507">ComponentEnum</a> { <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1">ComponentEnum::POSITION</a>,
+<a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419">ComponentEnum::NAX_COMPONENTS</a>
+ }</td></tr>
+<tr class="separator:a265b76591becf42b342804bbc4a79507"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="a265b76591becf42b342804bbc4a79507"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507">ComponentEnum</a></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">strong</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1"></a>POSITION</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419"></a>NAX_COMPONENTS</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/component_8h_source.html b/component_8h_source.html
new file mode 100644
index 00000000..2f90d8a1
--- /dev/null
+++ b/component_8h_source.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/component.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">component.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="component_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_ENGINE_COMPONENT_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_ENGINE_COMPONENT_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classComponent.html"> 12</a></span>&#160;<span class="keyword">class </span><a class="code" href="classComponent.html">Component</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;};</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="component_8h.html#a265b76591becf42b342804bbc4a79507"> 16</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="component_8h.html#a265b76591becf42b342804bbc4a79507">ComponentEnum</a> {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1">POSITION</a>,</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419">NAX_COMPONENTS</a>,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;};</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="component_8h_html_a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1"><div class="ttname"><a href="component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1">ComponentEnum::POSITION</a></div></div>
+<div class="ttc" id="component_8h_html_a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419"><div class="ttname"><a href="component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419">ComponentEnum::NAX_COMPONENTS</a></div></div>
+<div class="ttc" id="component_8h_html_a265b76591becf42b342804bbc4a79507"><div class="ttname"><a href="component_8h.html#a265b76591becf42b342804bbc4a79507">ComponentEnum</a></div><div class="ttdeci">ComponentEnum</div><div class="ttdef"><b>Definition:</b> component.h:16</div></div>
+<div class="ttc" id="classComponent_html"><div class="ttname"><a href="classComponent.html">Component</a></div><div class="ttdef"><b>Definition:</b> component.h:12</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/deprecated.html b/deprecated.html
index 3881ecd5..983d3d55 100644
--- a/deprecated.html
+++ b/deprecated.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('deprecated.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,7 @@ $(document).ready(function(){initNavTree('deprecated.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Deprecated List </div> </div>
@@ -107,14 +87,11 @@ $(document).ready(function(){initNavTree('deprecated.html','');});
<dd>Use SpriteBatch instead </dd>
</dl>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_059f34b87ae2c2af887b23a7e5e8e88f.html b/dir_059f34b87ae2c2af887b23a7e5e8e88f.html
index c113419e..b9a04c09 100644
--- a/dir_059f34b87ae2c2af887b23a7e5e8e88f.html
+++ b/dir_059f34b87ae2c2af887b23a7e5e8e88f.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_059f34b87ae2c2af887b23a7e5e8e88f.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_059f34b87ae2c2af887b23a7e5e8e88f.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">render Directory Reference</div> </div>
@@ -106,14 +90,24 @@ $(document).ready(function(){initNavTree('dir_059f34b87ae2c2af887b23a7e5e8e88f.h
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:batch_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="batch_8h.html">batch.h</a> <a href="batch_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:batch_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:drawable_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="drawable_8h.html">drawable.h</a> <a href="drawable_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:drawable_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ellipse_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ellipse_8h.html">ellipse.h</a> <a href="ellipse_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:ellipse_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rectangle_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rectangle_8cpp.html">rectangle.cpp</a></td></tr>
+<tr class="memdesc:rectangle_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rectangle_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rectangle_8h.html">rectangle.h</a> <a href="rectangle_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:rectangle_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:shader_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="shader_8cpp.html">shader.cpp</a></td></tr>
<tr class="memdesc:shader_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
@@ -124,6 +118,8 @@ Files</h2></td></tr>
<br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:shape_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="shape_8h.html">shape.h</a> <a href="shape_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:shape_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:sprite_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sprite_8cpp.html">sprite.cpp</a></td></tr>
<tr class="memdesc:sprite_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
@@ -143,15 +139,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_059f34b87ae2c2af887b23a7e5e8e88f.js b/dir_059f34b87ae2c2af887b23a7e5e8e88f.js
deleted file mode 100644
index 1e784721..00000000
--- a/dir_059f34b87ae2c2af887b23a7e5e8e88f.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var dir_059f34b87ae2c2af887b23a7e5e8e88f =
-[
- [ "batch.h", "batch_8h.html", [
- [ "Batch", "classyage_1_1Batch.html", "classyage_1_1Batch" ]
- ] ],
- [ "drawable.h", "drawable_8h.html", [
- [ "Drawable", "classyage_1_1Drawable.html", "classyage_1_1Drawable" ]
- ] ],
- [ "ellipse.h", "ellipse_8h.html", null ],
- [ "rectangle.cpp", "rectangle_8cpp.html", null ],
- [ "rectangle.h", "rectangle_8h.html", [
- [ "Rectangle", "classyage_1_1Rectangle.html", "classyage_1_1Rectangle" ]
- ] ],
- [ "shader.cpp", "shader_8cpp.html", null ],
- [ "shader.h", "shader_8h.html", [
- [ "Shader", "classyage_1_1Shader.html", "classyage_1_1Shader" ]
- ] ],
- [ "shape.h", "shape_8h.html", [
- [ "Shape", "classyage_1_1Shape.html", "classyage_1_1Shape" ]
- ] ],
- [ "sprite.cpp", "sprite_8cpp.html", null ],
- [ "sprite.h", "sprite_8h.html", [
- [ "Sprite", "classyage_1_1Sprite.html", "classyage_1_1Sprite" ]
- ] ],
- [ "spritebatch.cpp", "spritebatch_8cpp.html", null ],
- [ "spritebatch.h", "spritebatch_8h.html", [
- [ "RenderBatch", "structyage_1_1details_1_1RenderBatch.html", "structyage_1_1details_1_1RenderBatch" ],
- [ "Glyph", "structyage_1_1details_1_1Glyph.html", "structyage_1_1details_1_1Glyph" ],
- [ "SpriteBatch", "classyage_1_1SpriteBatch.html", "classyage_1_1SpriteBatch" ]
- ] ]
-]; \ No newline at end of file
diff --git a/dir_0a5be4b85c8e2c05f7a9f5a803f53125.html b/dir_0a5be4b85c8e2c05f7a9f5a803f53125.html
index 390ba8f6..ae697851 100644
--- a/dir_0a5be4b85c8e2c05f7a9f5a803f53125.html
+++ b/dir_0a5be4b85c8e2c05f7a9f5a803f53125.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_0a5be4b85c8e2c05f7a9f5a803f53125.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_0a5be4b85c8e2c05f7a9f5a803f53125.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage Directory Reference</div> </div>
@@ -109,6 +93,8 @@ Directories</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_d09e80fdcf0bb585bbe3b7099c52d028"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_4360c3054e876104aec8d81523b584e2"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_aa7f86daaaa64c448f636c0e65de2cec"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_a58d7658bbcfd3d3d7296185ebe55c28"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></td></tr>
@@ -130,15 +116,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_0a5be4b85c8e2c05f7a9f5a803f53125.js b/dir_0a5be4b85c8e2c05f7a9f5a803f53125.js
deleted file mode 100644
index e14ab1ef..00000000
--- a/dir_0a5be4b85c8e2c05f7a9f5a803f53125.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var dir_0a5be4b85c8e2c05f7a9f5a803f53125 =
-[
- [ "core", "dir_11841e5da2063fc5766a682aee38e289.html", "dir_11841e5da2063fc5766a682aee38e289" ],
- [ "data", "dir_d09e80fdcf0bb585bbe3b7099c52d028.html", "dir_d09e80fdcf0bb585bbe3b7099c52d028" ],
- [ "math", "dir_aa7f86daaaa64c448f636c0e65de2cec.html", "dir_aa7f86daaaa64c448f636c0e65de2cec" ],
- [ "physics", "dir_a58d7658bbcfd3d3d7296185ebe55c28.html", "dir_a58d7658bbcfd3d3d7296185ebe55c28" ],
- [ "render", "dir_059f34b87ae2c2af887b23a7e5e8e88f.html", "dir_059f34b87ae2c2af887b23a7e5e8e88f" ],
- [ "util", "dir_48a91ae829881cbedcfc124d2027890d.html", "dir_48a91ae829881cbedcfc124d2027890d" ],
- [ "yage.cpp", "yage_8cpp.html", "yage_8cpp" ],
- [ "yage.h", "yage_8h.html", "yage_8h" ]
-]; \ No newline at end of file
diff --git a/dir_11841e5da2063fc5766a682aee38e289.html b/dir_11841e5da2063fc5766a682aee38e289.html
index 7207655d..0eeeea38 100644
--- a/dir_11841e5da2063fc5766a682aee38e289.html
+++ b/dir_11841e5da2063fc5766a682aee38e289.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_11841e5da2063fc5766a682aee38e289.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_11841e5da2063fc5766a682aee38e289.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">core Directory Reference</div> </div>
@@ -195,15 +179,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_11841e5da2063fc5766a682aee38e289.js b/dir_11841e5da2063fc5766a682aee38e289.js
deleted file mode 100644
index 2ed33b81..00000000
--- a/dir_11841e5da2063fc5766a682aee38e289.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var dir_11841e5da2063fc5766a682aee38e289 =
-[
- [ "camera.cpp", "camera_8cpp.html", null ],
- [ "camera.h", "camera_8h.html", [
- [ "Camera", "classyage_1_1Camera.html", "classyage_1_1Camera" ]
- ] ],
- [ "imageloader.cpp", "imageloader_8cpp.html", null ],
- [ "imageloader.h", "imageloader_8h.html", [
- [ "ImageLoader", "classyage_1_1ImageLoader.html", "classyage_1_1ImageLoader" ]
- ] ],
- [ "iomanager.cpp", "iomanager_8cpp.html", null ],
- [ "iomanager.h", "iomanager_8h.html", [
- [ "IoManager", "classyage_1_1IoManager.html", "classyage_1_1IoManager" ]
- ] ],
- [ "logger.cpp", "logger_8cpp.html", null ],
- [ "logger.h", "logger_8h.html", "logger_8h" ],
- [ "loglevel.h", "loglevel_8h.html", "loglevel_8h" ],
- [ "logmessage.cpp", "logmessage_8cpp.html", null ],
- [ "logmessage.h", "logmessage_8h.html", [
- [ "LogMessage", "classyage_1_1LogMessage.html", "classyage_1_1LogMessage" ],
- [ "Meta", "structyage_1_1LogMessage_1_1Meta.html", "structyage_1_1LogMessage_1_1Meta" ]
- ] ],
- [ "logsink.cpp", "logsink_8cpp.html", "logsink_8cpp" ],
- [ "logsink.h", "logsink_8h.html", "logsink_8h" ],
- [ "resourcemanager.cpp", "resourcemanager_8cpp.html", null ],
- [ "resourcemanager.h", "resourcemanager_8h.html", [
- [ "ResourceManager", "classyage_1_1ResourceManager.html", "classyage_1_1ResourceManager" ]
- ] ],
- [ "spritesheet.cpp", "spritesheet_8cpp.html", null ],
- [ "spritesheet.h", "spritesheet_8h.html", "spritesheet_8h" ],
- [ "stb_image.cpp", "stb__image_8cpp.html", "stb__image_8cpp" ],
- [ "stb_image.h", "stb__image_8h.html", "stb__image_8h" ],
- [ "texturecache.cpp", "texturecache_8cpp.html", null ],
- [ "texturecache.h", "texturecache_8h.html", [
- [ "TextureCache", "classyage_1_1TextureCache.html", "classyage_1_1TextureCache" ]
- ] ],
- [ "window.cpp", "window_8cpp.html", null ],
- [ "window.h", "window_8h.html", "window_8h" ]
-]; \ No newline at end of file
diff --git a/dir_4360c3054e876104aec8d81523b584e2.html b/dir_4360c3054e876104aec8d81523b584e2.html
new file mode 100644
index 00000000..90c152ea
--- /dev/null
+++ b/dir_4360c3054e876104aec8d81523b584e2.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">engine Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:component_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="component_8h.html">component.h</a> <a href="component_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:component_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:engine_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="engine_8cpp.html">engine.cpp</a></td></tr>
+<tr class="memdesc:engine_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:engine_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="engine_8h.html">engine.h</a> <a href="engine_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:engine_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:entity_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entity_8cpp.html">entity.cpp</a></td></tr>
+<tr class="memdesc:entity_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:entity_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entity_8h.html">entity.h</a> <a href="entity_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:entity_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:entitymanager_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entitymanager_8cpp.html">entitymanager.cpp</a></td></tr>
+<tr class="memdesc:entitymanager_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:entitymanager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entitymanager_8h.html">entitymanager.h</a> <a href="entitymanager_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:entitymanager_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:space_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="space_8cpp.html">space.cpp</a></td></tr>
+<tr class="memdesc:space_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:space_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="space_8h.html">space.h</a> <a href="space_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:space_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:system_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html">system.h</a> <a href="system_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:system_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><hr/>
+ <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/dir_48a91ae829881cbedcfc124d2027890d.html b/dir_48a91ae829881cbedcfc124d2027890d.html
index b4c18c61..88f0de7f 100644
--- a/dir_48a91ae829881cbedcfc124d2027890d.html
+++ b/dir_48a91ae829881cbedcfc124d2027890d.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_48a91ae829881cbedcfc124d2027890d.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_48a91ae829881cbedcfc124d2027890d.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">util Directory Reference</div> </div>
@@ -119,15 +103,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_48a91ae829881cbedcfc124d2027890d.js b/dir_48a91ae829881cbedcfc124d2027890d.js
deleted file mode 100644
index b8915136..00000000
--- a/dir_48a91ae829881cbedcfc124d2027890d.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var dir_48a91ae829881cbedcfc124d2027890d =
-[
- [ "active.cpp", "active_8cpp.html", null ],
- [ "active.h", "active_8h.html", [
- [ "Active", "classyage_1_1Active.html", "classyage_1_1Active" ]
- ] ],
- [ "syncqueue.h", "syncqueue_8h.html", [
- [ "SyncQueue", "classyage_1_1SyncQueue.html", "classyage_1_1SyncQueue" ]
- ] ]
-]; \ No newline at end of file
diff --git a/dir_a58d7658bbcfd3d3d7296185ebe55c28.html b/dir_a58d7658bbcfd3d3d7296185ebe55c28.html
index 51e8c5d6..7d1a9e0c 100644
--- a/dir_a58d7658bbcfd3d3d7296185ebe55c28.html
+++ b/dir_a58d7658bbcfd3d3d7296185ebe55c28.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_a58d7658bbcfd3d3d7296185ebe55c28.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_a58d7658bbcfd3d3d7296185ebe55c28.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">physics Directory Reference</div> </div>
@@ -151,15 +135,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_a58d7658bbcfd3d3d7296185ebe55c28.js b/dir_a58d7658bbcfd3d3d7296185ebe55c28.js
deleted file mode 100644
index 134bb3fe..00000000
--- a/dir_a58d7658bbcfd3d3d7296185ebe55c28.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var dir_a58d7658bbcfd3d3d7296185ebe55c28 =
-[
- [ "body.cpp", "body_8cpp.html", null ],
- [ "body.h", "body_8h.html", [
- [ "Body", "classyage_1_1Body.html", "classyage_1_1Body" ]
- ] ],
- [ "collider.h", "collider_8h.html", [
- [ "Collider", "classyage_1_1Collider.html", "classyage_1_1Collider" ]
- ] ],
- [ "collisionbody.h", "collisionbody_8h.html", [
- [ "CollisionBody", "classyage_1_1CollisionBody.html", "classyage_1_1CollisionBody" ]
- ] ],
- [ "particlebody.cpp", "particlebody_8cpp.html", null ],
- [ "particlebody.h", "particlebody_8h.html", [
- [ "ParticleBody", "classyage_1_1ParticleBody.html", "classyage_1_1ParticleBody" ]
- ] ],
- [ "physics.h", "physics_8h.html", null ],
- [ "rectanglecollider.cpp", "rectanglecollider_8cpp.html", null ],
- [ "rectanglecollider.h", "rectanglecollider_8h.html", [
- [ "RectangleCollider", "classyage_1_1RectangleCollider.html", "classyage_1_1RectangleCollider" ]
- ] ],
- [ "rigidbody.cpp", "rigidbody_8cpp.html", null ],
- [ "rigidbody.h", "rigidbody_8h.html", [
- [ "RigidBody", "classyage_1_1RigidBody.html", "classyage_1_1RigidBody" ]
- ] ]
-]; \ No newline at end of file
diff --git a/dir_aa7f86daaaa64c448f636c0e65de2cec.html b/dir_aa7f86daaaa64c448f636c0e65de2cec.html
index a5e5d3b9..635d1f31 100644
--- a/dir_aa7f86daaaa64c448f636c0e65de2cec.html
+++ b/dir_aa7f86daaaa64c448f636c0e65de2cec.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_aa7f86daaaa64c448f636c0e65de2cec.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_aa7f86daaaa64c448f636c0e65de2cec.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">math Directory Reference</div> </div>
@@ -111,15 +95,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_aa7f86daaaa64c448f636c0e65de2cec.js b/dir_aa7f86daaaa64c448f636c0e65de2cec.js
deleted file mode 100644
index fe9f35e4..00000000
--- a/dir_aa7f86daaaa64c448f636c0e65de2cec.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var dir_aa7f86daaaa64c448f636c0e65de2cec =
-[
- [ "matrix.h", "matrix_8h.html", "matrix_8h" ]
-]; \ No newline at end of file
diff --git a/dir_d09e80fdcf0bb585bbe3b7099c52d028.html b/dir_d09e80fdcf0bb585bbe3b7099c52d028.html
index 921a1b65..0270a34c 100644
--- a/dir_d09e80fdcf0bb585bbe3b7099c52d028.html
+++ b/dir_d09e80fdcf0bb585bbe3b7099c52d028.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('dir_d09e80fdcf0bb585bbe3b7099c52d028.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,11 @@ $(document).ready(function(){initNavTree('dir_d09e80fdcf0bb585bbe3b7099c52d028.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">data Directory Reference</div> </div>
@@ -119,15 +103,11 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/dir_d09e80fdcf0bb585bbe3b7099c52d028.js b/dir_d09e80fdcf0bb585bbe3b7099c52d028.js
deleted file mode 100644
index 1cab60df..00000000
--- a/dir_d09e80fdcf0bb585bbe3b7099c52d028.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var dir_d09e80fdcf0bb585bbe3b7099c52d028 =
-[
- [ "input.h", "input_8h.html", "input_8h" ],
- [ "texture.h", "texture_8h.html", [
- [ "Texture", "structyage_1_1Texture.html", "structyage_1_1Texture" ]
- ] ],
- [ "vertex.h", "vertex_8h.html", [
- [ "Position", "structyage_1_1Position.html", "structyage_1_1Position" ],
- [ "Colour", "structyage_1_1Colour.html", "structyage_1_1Colour" ],
- [ "UV", "structyage_1_1UV.html", "structyage_1_1UV" ],
- [ "Vertex", "structyage_1_1Vertex.html", "structyage_1_1Vertex" ]
- ] ]
-]; \ No newline at end of file
diff --git a/doxygen.css b/doxygen.css
index f0f36f89..c43273bf 100644
--- a/doxygen.css
+++ b/doxygen.css
@@ -18,8 +18,8 @@ h1.groupheader {
}
h2.groupheader {
- border-bottom: 1px solid #879ECB;
- color: #354C7B;
+ border-bottom: 1px solid #EC8766;
+ color: #9E3513;
font-size: 150%;
font-weight: normal;
margin-top: 1.75em;
@@ -93,8 +93,8 @@ h3.version {
}
div.qindex, div.navtab{
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
+ background-color: #FCEBE6;
+ border: 1px solid #F0A38A;
text-align: center;
}
@@ -110,13 +110,13 @@ div.navtab {
/* @group Link Styling */
a {
- color: #3D578C;
+ color: #B33D15;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
- color: #4665A2;
+ color: #D04619;
}
a:hover {
@@ -129,9 +129,9 @@ a.qindex {
a.qindexHL {
font-weight: bold;
- background-color: #9CAFD4;
+ background-color: #EF9C80;
color: #ffffff;
- border: 1px double #869DCA;
+ border: 1px double #EC8664;
}
.contents a.qindexHL:visited {
@@ -175,8 +175,8 @@ pre.fragment {
div.fragment {
padding: 4px 6px;
margin: 4px 8px 4px 2px;
- background-color: #FBFCFD;
- border: 1px solid #C4CFE5;
+ background-color: #FEFBFA;
+ border: 1px solid #F6C4B4;
}
div.line {
@@ -269,9 +269,9 @@ div.contents {
}
td.indexkey {
- background-color: #EBEFF6;
+ background-color: #FCEBE6;
font-weight: bold;
- border: 1px solid #C4CFE5;
+ border: 1px solid #F6C4B4;
margin: 2px 0px 2px 0;
padding: 2px 10px;
white-space: nowrap;
@@ -279,14 +279,14 @@ td.indexkey {
}
td.indexvalue {
- background-color: #EBEFF6;
- border: 1px solid #C4CFE5;
+ background-color: #FCEBE6;
+ border: 1px solid #F6C4B4;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
- background-color: #EEF1F7;
+ background-color: #FCEEE9;
}
p.formulaDsp {
@@ -369,8 +369,8 @@ span.vhdllogic {
}
blockquote {
- background-color: #F7F8FB;
- border-left: 2px solid #9CAFD4;
+ background-color: #FDF7F4;
+ border-left: 2px solid #EF9C80;
margin: 0 24px 0 4px;
padding: 0 12px 0 16px;
}
@@ -403,18 +403,18 @@ td.tiny {
.dirtab {
padding: 4px;
border-collapse: collapse;
- border: 1px solid #A3B4D7;
+ border: 1px solid #F0A38A;
}
th.dirtab {
- background: #EBEFF6;
+ background: #FCEBE6;
font-weight: bold;
}
hr {
height: 0px;
border: none;
- border-top: 1px solid #4A6AAA;
+ border-top: 1px solid #DA4A1A;
}
hr.footer {
@@ -449,7 +449,7 @@ table.memberdecls {
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- background-color: #F9FAFC;
+ background-color: #FEF9F7;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
@@ -476,7 +476,7 @@ table.memberdecls {
}
.memTemplParams {
- color: #4665A2;
+ color: #D04619;
white-space: nowrap;
font-size: 80%;
}
@@ -489,14 +489,14 @@ table.memberdecls {
.memtemplate {
font-size: 80%;
- color: #4665A2;
+ color: #D04619;
font-weight: normal;
margin-left: 9px;
}
.memnav {
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
+ background-color: #FCEBE6;
+ border: 1px solid #F0A38A;
text-align: center;
margin: 2px;
margin-right: 15px;
@@ -534,16 +534,16 @@ table.memberdecls {
}
.memproto, dl.reflist dt {
- border-top: 1px solid #A8B8D9;
- border-left: 1px solid #A8B8D9;
- border-right: 1px solid #A8B8D9;
+ border-top: 1px solid #F1A890;
+ border-left: 1px solid #F1A890;
+ border-right: 1px solid #F1A890;
padding: 6px 0px 6px 0px;
- color: #253555;
+ color: #6D250D;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
background-image:url('nav_f.png');
background-repeat:repeat-x;
- background-color: #E2E8F2;
+ background-color: #FAE2DA;
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 4px;
@@ -560,11 +560,11 @@ table.memberdecls {
}
.memdoc, dl.reflist dd {
- border-bottom: 1px solid #A8B8D9;
- border-left: 1px solid #A8B8D9;
- border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #F1A890;
+ border-left: 1px solid #F1A890;
+ border-right: 1px solid #F1A890;
padding: 6px 10px 2px 10px;
- background-color: #FBFCFD;
+ background-color: #FEFBFA;
border-top-width: 0;
background-image:url('nav_g.png');
background-repeat:repeat-x;
@@ -651,11 +651,11 @@ span.mlabels {
}
span.mlabel {
- background-color: #728DC1;
- border-top:1px solid #5373B4;
- border-left:1px solid #5373B4;
- border-right:1px solid #C4CFE5;
- border-bottom:1px solid #C4CFE5;
+ background-color: #E9724B;
+ border-top:1px solid #E45323;
+ border-left:1px solid #E45323;
+ border-right:1px solid #F6C4B4;
+ border-bottom:1px solid #F6C4B4;
text-shadow: none;
color: white;
margin-right: 4px;
@@ -713,7 +713,7 @@ div.directory {
.directory tr.even {
padding-left: 6px;
- background-color: #F7F8FB;
+ background-color: #FDF7F4;
}
.directory img {
@@ -731,7 +731,7 @@ div.directory {
cursor: pointer;
padding-left: 2px;
padding-right: 2px;
- color: #3D578C;
+ color: #B33D15;
}
div.dynheader {
@@ -746,7 +746,7 @@ div.dynheader {
address {
font-style: normal;
- color: #2A3D61;
+ color: #7D2A0F;
}
table.doxtable {
@@ -756,12 +756,12 @@ table.doxtable {
}
table.doxtable td, table.doxtable th {
- border: 1px solid #2D4068;
+ border: 1px solid #852D10;
padding: 3px 7px 2px;
}
table.doxtable th {
- background-color: #374F7F;
+ background-color: #A33713;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
@@ -771,7 +771,7 @@ table.doxtable th {
table.fieldtable {
/*width: 100%;*/
margin-bottom: 10px;
- border: 1px solid #A8B8D9;
+ border: 1px solid #F1A890;
border-spacing: 0px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
@@ -787,8 +787,8 @@ table.fieldtable {
.fieldtable td.fieldtype, .fieldtable td.fieldname {
white-space: nowrap;
- border-right: 1px solid #A8B8D9;
- border-bottom: 1px solid #A8B8D9;
+ border-right: 1px solid #F1A890;
+ border-bottom: 1px solid #F1A890;
vertical-align: top;
}
@@ -797,7 +797,7 @@ table.fieldtable {
}
.fieldtable td.fielddoc {
- border-bottom: 1px solid #A8B8D9;
+ border-bottom: 1px solid #F1A890;
/*width: 100%;*/
}
@@ -816,9 +816,9 @@ table.fieldtable {
.fieldtable th {
background-image:url('nav_f.png');
background-repeat:repeat-x;
- background-color: #E2E8F2;
+ background-color: #FAE2DA;
font-size: 90%;
- color: #253555;
+ color: #6D250D;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
@@ -828,7 +828,7 @@ table.fieldtable {
-webkit-border-top-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
- border-bottom: 1px solid #A8B8D9;
+ border-bottom: 1px solid #F1A890;
}
@@ -850,8 +850,8 @@ table.fieldtable {
background-position: 0 -5px;
height:30px;
line-height:30px;
- color:#8AA0CC;
- border:solid 1px #C2CDE4;
+ color:#EC8A69;
+ border:solid 1px #F5C2B1;
overflow:hidden;
margin:0px;
padding:0px;
@@ -866,7 +866,7 @@ table.fieldtable {
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
- color:#364D7C;
+ color:#9F3613;
}
.navpath li.navelem a
@@ -875,7 +875,7 @@ table.fieldtable {
display:block;
text-decoration: none;
outline: none;
- color: #283A5D;
+ color: #77280E;
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
@@ -883,7 +883,7 @@ table.fieldtable {
.navpath li.navelem a:hover
{
- color:#6884BD;
+ color:#E7683E;
}
.navpath li.footer
@@ -895,7 +895,7 @@ table.fieldtable {
background-image:none;
background-repeat:no-repeat;
background-position:right;
- color:#364D7C;
+ color:#9F3613;
font-size: 8pt;
}
@@ -930,9 +930,9 @@ div.header
{
background-image:url('nav_h.png');
background-repeat:repeat-x;
- background-color: #F9FAFC;
+ background-color: #FEF9F7;
margin: 0px;
- border-bottom: 1px solid #C4CFE5;
+ border-bottom: 1px solid #F6C4B4;
}
div.headertitle
@@ -1051,7 +1051,7 @@ dl.section dd {
padding: 0px;
margin: 0px;
width: 100%;
- border-bottom: 1px solid #5373B4;
+ border-bottom: 1px solid #E45323;
}
.image
@@ -1081,7 +1081,7 @@ dl.section dd {
div.zoom
{
- border: 1px solid #90A5CE;
+ border: 1px solid #ED9071;
}
dl.citelist {
@@ -1089,7 +1089,7 @@ dl.citelist {
}
dl.citelist dt {
- color:#334975;
+ color:#963312;
float:left;
font-weight:bold;
margin-right:10px;
@@ -1103,8 +1103,8 @@ dl.citelist dd {
div.toc {
padding: 14px 25px;
- background-color: #F4F6FA;
- border: 1px solid #D8DFEE;
+ background-color: #FDF4F2;
+ border: 1px solid #F9D8CD;
border-radius: 7px 7px 7px 7px;
float: right;
height: auto;
@@ -1122,7 +1122,7 @@ div.toc li {
div.toc h3 {
font: bold 12px/1.2 Arial,FreeSans,sans-serif;
- color: #4665A2;
+ color: #D04619;
border-bottom: 0 none;
margin: 0;
}
diff --git a/doxygen.png b/doxygen.png
index 3ff17d80..ca80265c 100644
--- a/doxygen.png
+++ b/doxygen.png
Binary files differ
diff --git a/drawable_8h.html b/drawable_8h.html
index 3932b7ed..c8e91fc2 100644
--- a/drawable_8h.html
+++ b/drawable_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('drawable_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('drawable_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -111,6 +95,10 @@ $(document).ready(function(){initNavTree('drawable_8h.html','');});
<div class="title">drawable.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="spritebatch_8h_source.html">spritebatch.h</a>&quot;</code><br/>
</div>
<p><a href="drawable_8h_source.html">Go to the source code of this file.</a></p>
@@ -123,19 +111,19 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="drawable_8h.html">drawable.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/drawable_8h_source.html b/drawable_8h_source.html
index 1713d10a..8d983519 100644
--- a/drawable_8h_source.html
+++ b/drawable_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('drawable_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,42 +82,44 @@ $(document).ready(function(){initNavTree('drawable_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">drawable.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="drawable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_DRAWABLE_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_DRAWABLE_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritebatch_8h.html">spritebatch.h</a>&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>yage</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classyage_1_1Drawable.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Drawable.html">Drawable</a></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e">draw</a>(<a class="code" href="classyage_1_1SpriteBatch.html">SpriteBatch</a> &amp;sp) = 0;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;};</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;} <span class="comment">// namespace yage</span></div>
+<a href="drawable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_DRAWABLE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_DRAWABLE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritebatch_8h.html">spritebatch.h</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classyage_1_1Drawable.html"> 17</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Drawable.html">Drawable</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e">draw</a>(<a class="code" href="classyage_1_1SpriteBatch.html">SpriteBatch</a> &amp;sp) = 0;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classyage_1_1SpriteBatch_html"><div class="ttname"><a href="classyage_1_1SpriteBatch.html">yage::SpriteBatch</a></div><div class="ttdef"><b>Definition:</b> spritebatch.h:59</div></div>
<div class="ttc" id="spritebatch_8h_html"><div class="ttname"><a href="spritebatch_8h.html">spritebatch.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="classyage_1_1Drawable_html"><div class="ttname"><a href="classyage_1_1Drawable.html">yage::Drawable</a></div><div class="ttdef"><b>Definition:</b> drawable.h:9</div></div>
+<div class="ttc" id="classyage_1_1Drawable_html"><div class="ttname"><a href="classyage_1_1Drawable.html">yage::Drawable</a></div><div class="ttdef"><b>Definition:</b> drawable.h:17</div></div>
<div class="ttc" id="classyage_1_1Drawable_html_abee95e68b5bffef86a35dafca296c45e"><div class="ttname"><a href="classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e">yage::Drawable::draw</a></div><div class="ttdeci">virtual void draw(SpriteBatch &amp;sp)=0</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="drawable_8h.html">drawable.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/ellipse_8h.html b/ellipse_8h.html
index d5522248..ba0e0ecb 100644
--- a/ellipse_8h.html
+++ b/ellipse_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('ellipse_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,23 +82,32 @@ $(document).ready(function(){initNavTree('ellipse_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ellipse.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><hr/>
+
+<a href="#details">More...</a></p>
+
<p><a href="ellipse_8h_source.html">Go to the source code of this file.</a></p>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="ellipse_8h.html">ellipse.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/ellipse_8h_source.html b/ellipse_8h_source.html
index ae93794d..a55448f4 100644
--- a/ellipse_8h_source.html
+++ b/ellipse_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('ellipse_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,27 +82,27 @@ $(document).ready(function(){initNavTree('ellipse_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ellipse.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="ellipse_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_ELLIPSE_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_ELLIPSE_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="ellipse_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_ELLIPSE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_ELLIPSE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="ellipse_8h.html">ellipse.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/engine_8cpp.html b/engine_8cpp.html
new file mode 100644
index 00000000..6eed5e2e
--- /dev/null
+++ b/engine_8cpp.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/engine.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">engine.cpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="engine_8h_source.html">engine.h</a>&quot;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/engine_8h.html b/engine_8h.html
new file mode 100644
index 00000000..52628b6f
--- /dev/null
+++ b/engine_8h.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/engine.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">engine.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="window_8h_source.html">../core/window.h</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="system_8h_source.html">system.h</a>&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+</div>
+<p><a href="engine_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html">yage::Engine</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main engine class that contains a systems, the main loop and the update function that updates all the systems. <a href="classyage_1_1Engine.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/engine_8h_source.html b/engine_8h_source.html
new file mode 100644
index 00000000..95be9bb1
--- /dev/null
+++ b/engine_8h_source.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/engine.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">engine.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="engine_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_ENGINE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_ENGINE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;../core/window.h&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="system_8h.html">system.h</a>&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classyage_1_1Engine.html"> 22</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Engine.html">Engine</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">init</a>();</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">mainLoop</a>();</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">update</a>();</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">addSystem</a>(<a class="code" href="classyage_1_1System.html">System</a> *system);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">static</span> <a class="code" href="classyage_1_1Engine.html">Engine</a> &amp;<a class="code" href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">instance</a>();</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; std::vector&lt;System *&gt; systems_;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classyage_1_1Window.html">Window</a> window_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1Engine_html_ab605c8ab3209e6cb1a8b0d45eb6180b6"><div class="ttname"><a href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">yage::Engine::addSystem</a></div><div class="ttdeci">void addSystem(System *system)</div><div class="ttdoc">Adds a system to the engine. </div><div class="ttdef"><b>Definition:</b> engine.cpp:43</div></div>
+<div class="ttc" id="classyage_1_1Engine_html_a7e4303fa3bd951ee64e166d6e0fb7b33"><div class="ttname"><a href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">yage::Engine::instance</a></div><div class="ttdeci">static Engine &amp; instance()</div><div class="ttdoc">Returns the instance of the engine, as there is only one instance of the engine. </div><div class="ttdef"><b>Definition:</b> engine.cpp:48</div></div>
+<div class="ttc" id="classyage_1_1System_html"><div class="ttname"><a href="classyage_1_1System.html">yage::System</a></div><div class="ttdoc">System interface for the different systems in the engine. </div><div class="ttdef"><b>Definition:</b> system.h:18</div></div>
+<div class="ttc" id="classyage_1_1Window_html"><div class="ttname"><a href="classyage_1_1Window.html">yage::Window</a></div><div class="ttdef"><b>Definition:</b> window.h:30</div></div>
+<div class="ttc" id="classyage_1_1Engine_html"><div class="ttname"><a href="classyage_1_1Engine.html">yage::Engine</a></div><div class="ttdoc">Main engine class that contains a systems, the main loop and the update function that updates all the...</div><div class="ttdef"><b>Definition:</b> engine.h:22</div></div>
+<div class="ttc" id="classyage_1_1Engine_html_a8d888a2871d93f40b98ecf3548dd8d67"><div class="ttname"><a href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">yage::Engine::update</a></div><div class="ttdeci">void update()</div><div class="ttdoc">Updates the systems. </div><div class="ttdef"><b>Definition:</b> engine.cpp:34</div></div>
+<div class="ttc" id="classyage_1_1Engine_html_a41073d8b8117e567357fe46fed01bbe4"><div class="ttname"><a href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">yage::Engine::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">Initialize window and other aspects of the engine. </div><div class="ttdef"><b>Definition:</b> engine.cpp:14</div></div>
+<div class="ttc" id="classyage_1_1Engine_html_a245478397be4ca0d9ac6af84c1753e42"><div class="ttname"><a href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">yage::Engine::mainLoop</a></div><div class="ttdeci">void mainLoop()</div><div class="ttdoc">Main game loop of the engine. </div><div class="ttdef"><b>Definition:</b> engine.cpp:23</div></div>
+<div class="ttc" id="system_8h_html"><div class="ttname"><a href="system_8h.html">system.h</a></div><div class="ttdoc"> </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entity_8cpp.html b/entity_8cpp.html
new file mode 100644
index 00000000..6ee833b7
--- /dev/null
+++ b/entity_8cpp.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">entity.cpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="entity_8h_source.html">entity.h</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="space_8h_source.html">space.h</a>&quot;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entity_8h.html b/entity_8h.html
new file mode 100644
index 00000000..2aaab811
--- /dev/null
+++ b/entity_8h.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">entity.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+</div>
+<p><a href="entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Entity.html">yage::Entity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class. <a href="classyage_1_1Entity.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entity_8h_source.html b/entity_8h_source.html
new file mode 100644
index 00000000..5d468902
--- /dev/null
+++ b/entity_8h_source.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">entity.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_ENGINE_ENTITY_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_ENGINE_ENTITY_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span>Space;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classyage_1_1Entity.html"> 27</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Entity.html">Entity</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">Entity</a>(<span class="keywordtype">unsigned</span> handle);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">getHandle</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">unsigned</span> handle_;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1Entity_html"><div class="ttname"><a href="classyage_1_1Entity.html">yage::Entity</a></div><div class="ttdoc">Entity convenience class. </div><div class="ttdef"><b>Definition:</b> entity.h:27</div></div>
+<div class="ttc" id="classyage_1_1Entity_html_a046099f19b3483140505938769276d8a"><div class="ttname"><a href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">yage::Entity::Entity</a></div><div class="ttdeci">Entity(unsigned handle)</div><div class="ttdoc">Creates an instance of an Entity with a handle that is associated to it. </div><div class="ttdef"><b>Definition:</b> entity.cpp:16</div></div>
+<div class="ttc" id="classyage_1_1Entity_html_adb9e45f096a38c1057bba28acf7dde71"><div class="ttname"><a href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">yage::Entity::getHandle</a></div><div class="ttdeci">unsigned getHandle() const </div><div class="ttdoc">Handle getter, as the user will only interact with the id itself. </div><div class="ttdef"><b>Definition:</b> entity.cpp:18</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entitymanager_8cpp.html b/entitymanager_8cpp.html
new file mode 100644
index 00000000..8e8af4d6
--- /dev/null
+++ b/entitymanager_8cpp.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entitymanager.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">entitymanager.cpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="entitymanager_8h_source.html">entitymanager.h</a>&quot;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entitymanager_8h.html b/entitymanager_8h.html
new file mode 100644
index 00000000..f1f691b1
--- /dev/null
+++ b/entitymanager_8h.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entitymanager.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">entitymanager.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="entity_8h_source.html">entity.h</a>&quot;</code><br/>
+<code>#include &lt;vector&gt;</code><br/>
+</div>
+<p><a href="entitymanager_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html">yage::EntityManager</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages entities in a space. <a href="classyage_1_1EntityManager.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/entitymanager_8h_source.html b/entitymanager_8h_source.html
new file mode 100644
index 00000000..6c3cc92f
--- /dev/null
+++ b/entitymanager_8h_source.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/entitymanager.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">entitymanager.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="entitymanager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_ENGINE_ENTITYMANAGER_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_ENGINE_ENTITYMANAGER_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="entity_8h.html">entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">class </span>Space;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classyage_1_1EntityManager.html"> 24</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1EntityManager.html">EntityManager</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">EntityManager</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">EntityManager</a>(<a class="code" href="classyage_1_1Space.html">Space</a> *space);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">EntityManager</a>(<a class="code" href="classyage_1_1Space.html">Space</a> *space, std::size_t n);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">createEntity</a>();</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classyage_1_1Entity.html">Entity</a> <a class="code" href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">createEntityInstance</a>();</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">unsigned</span> next_handle_;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classyage_1_1Space.html">Space</a> *space_;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; std::vector&lt;Entity&gt; entities_;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="entity_8h_html"><div class="ttname"><a href="entity_8h.html">entity.h</a></div><div class="ttdoc"> </div></div>
+<div class="ttc" id="classyage_1_1EntityManager_html_acdd054a1235fb03452089d9f419a7e2b"><div class="ttname"><a href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">yage::EntityManager::createEntity</a></div><div class="ttdeci">unsigned createEntity()</div><div class="ttdoc">Creates an Entity and returns the handle to the entity, which can then be used by the user to do oper...</div><div class="ttdef"><b>Definition:</b> entitymanager.cpp:22</div></div>
+<div class="ttc" id="classyage_1_1EntityManager_html"><div class="ttname"><a href="classyage_1_1EntityManager.html">yage::EntityManager</a></div><div class="ttdoc">Manages entities in a space. </div><div class="ttdef"><b>Definition:</b> entitymanager.h:24</div></div>
+<div class="ttc" id="classyage_1_1EntityManager_html_a188f3bc252781f9f3a7b4da417f0d7de"><div class="ttname"><a href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">yage::EntityManager::createEntityInstance</a></div><div class="ttdeci">Entity createEntityInstance()</div><div class="ttdoc">Creates an Entity and returns it. </div><div class="ttdef"><b>Definition:</b> entitymanager.cpp:27</div></div>
+<div class="ttc" id="classyage_1_1Entity_html"><div class="ttname"><a href="classyage_1_1Entity.html">yage::Entity</a></div><div class="ttdoc">Entity convenience class. </div><div class="ttdef"><b>Definition:</b> entity.h:27</div></div>
+<div class="ttc" id="classyage_1_1EntityManager_html_a255fa9aff3e6b208eea0c38d8caf08f8"><div class="ttname"><a href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">yage::EntityManager::EntityManager</a></div><div class="ttdeci">EntityManager()=default</div><div class="ttdoc">Default instance of an EntityManager. </div></div>
+<div class="ttc" id="classyage_1_1Space_html"><div class="ttname"><a href="classyage_1_1Space.html">yage::Space</a></div><div class="ttdoc">Space that keeps track of all the entities, componenets and runs the systems on the data to update th...</div><div class="ttdef"><b>Definition:</b> space.h:28</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/files.html b/files.html
index 49daa642..4542bb4a 100644
--- a/files.html
+++ b/files.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -75,20 +69,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('files.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -163,73 +143,97 @@ $(document).ready(function(){initNavTree('files.html','');});
</td></tr>
<tr id="row_0_1_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="vertex_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="vertex_8h.html" target="_self">vertex.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_2_')"/><img id="img_0_2_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_2_')"/><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html" target="_self">math</a></td><td class="desc"></td></tr>
-<tr id="row_0_2_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="matrix_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="matrix_8h.html" target="_self">matrix.h</a></td><td class="desc"><hr/>
+<tr id="row_0_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_2_')"/><img id="img_0_2_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_2_')"/><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html" target="_self">engine</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="component_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="component_8h.html" target="_self">component.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_2_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="engine_8cpp.html" target="_self">engine.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_2_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="engine_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="engine_8h.html" target="_self">engine.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_2_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="entity_8cpp.html" target="_self">entity.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_2_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="entity_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="entity_8h.html" target="_self">entity.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_2_5_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="entitymanager_8cpp.html" target="_self">entitymanager.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_3_')"/><img id="img_0_3_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_3_')"/><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html" target="_self">physics</a></td><td class="desc"></td></tr>
-<tr id="row_0_3_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="body_8cpp.html" target="_self">body.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_2_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="entitymanager_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="entitymanager_8h.html" target="_self">entitymanager.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="body_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="body_8h.html" target="_self">body.h</a></td><td class="desc"><hr/>
+<tr id="row_0_2_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="space_8cpp.html" target="_self">space.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="collider_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="collider_8h.html" target="_self">collider.h</a></td><td class="desc"><hr/>
+<tr id="row_0_2_8_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="space_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="space_8h.html" target="_self">space.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="collisionbody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="collisionbody_8h.html" target="_self">collisionbody.h</a></td><td class="desc"><hr/>
+<tr id="row_0_2_9_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="system_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="system_8h.html" target="_self">system.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="particlebody_8cpp.html" target="_self">particlebody.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_3_')"/><img id="img_0_3_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_3_')"/><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html" target="_self">math</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="matrix_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="matrix_8h.html" target="_self">matrix.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_5_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="particlebody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="particlebody_8h.html" target="_self">particlebody.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_4_')"/><img id="img_0_4_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_4_')"/><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html" target="_self">physics</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="body_8cpp.html" target="_self">body.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="physics_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="physics_8h.html" target="_self">physics.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="body_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="body_8h.html" target="_self">body.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rectanglecollider_8cpp.html" target="_self">rectanglecollider.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_4_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="collider_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="collider_8h.html" target="_self">collider.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_8_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="rectanglecollider_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rectanglecollider_8h.html" target="_self">rectanglecollider.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="collisionbody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="collisionbody_8h.html" target="_self">collisionbody.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_9_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rigidbody_8cpp.html" target="_self">rigidbody.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_4_4_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="particlebody_8cpp.html" target="_self">particlebody.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_3_10_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="rigidbody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rigidbody_8h.html" target="_self">rigidbody.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="particlebody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="particlebody_8h.html" target="_self">particlebody.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_4_')"/><img id="img_0_4_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_4_')"/><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html" target="_self">render</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="batch_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="batch_8h.html" target="_self">batch.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="drawable_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="drawable_8h.html" target="_self">drawable.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ellipse_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ellipse_8h.html" target="_self">ellipse.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rectangle_8cpp.html" target="_self">rectangle.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="rectangle_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rectangle_8h.html" target="_self">rectangle.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_5_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="shader_8cpp.html" target="_self">shader.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_4_6_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="physics_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="physics_8h.html" target="_self">physics.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="shader_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="shader_8h.html" target="_self">shader.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_7_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rectanglecollider_8cpp.html" target="_self">rectanglecollider.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="shape_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="shape_8h.html" target="_self">shape.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_8_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sprite_8cpp.html" target="_self">sprite.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_4_8_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="rectanglecollider_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rectanglecollider_8h.html" target="_self">rectanglecollider.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_9_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sprite_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sprite_8h.html" target="_self">sprite.h</a></td><td class="desc"><hr/>
+<tr id="row_0_4_9_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rigidbody_8cpp.html" target="_self">rigidbody.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_10_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="spritebatch_8cpp.html" target="_self">spritebatch.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_4_10_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="rigidbody_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rigidbody_8h.html" target="_self">rigidbody.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_4_11_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="spritebatch_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="spritebatch_8h.html" target="_self">spritebatch.h</a></td><td class="desc"><hr/>
+<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_5_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_5_')"/><img id="img_0_5_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_5_')"/><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html" target="_self">render</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="batch_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="batch_8h.html" target="_self">batch.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_5_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_5_')"/><img id="img_0_5_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_5_')"/><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html" target="_self">util</a></td><td class="desc"></td></tr>
-<tr id="row_0_5_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="active_8cpp.html" target="_self">active.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_5_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="drawable_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="drawable_8h.html" target="_self">drawable.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_5_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="active_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="active_8h.html" target="_self">active.h</a></td><td class="desc"><hr/>
+<tr id="row_0_5_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ellipse_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ellipse_8h.html" target="_self">ellipse.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_5_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="syncqueue_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="syncqueue_8h.html" target="_self">syncqueue.h</a></td><td class="desc"><hr/>
+<tr id="row_0_5_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rectangle_8cpp.html" target="_self">rectangle.cpp</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="yage_8cpp.html" target="_self">yage.cpp</a></td><td class="desc"><hr/>
+<tr id="row_0_5_4_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="rectangle_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="rectangle_8h.html" target="_self">rectangle.h</a></td><td class="desc"><hr/>
</td></tr>
-<tr id="row_0_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="yage_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="yage_8h.html" target="_self">yage.h</a></td><td class="desc"><hr/>
+<tr id="row_0_5_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="shader_8cpp.html" target="_self">shader.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_6_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="shader_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="shader_8h.html" target="_self">shader.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_7_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="shape_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="shape_8h.html" target="_self">shape.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_8_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sprite_8cpp.html" target="_self">sprite.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_9_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sprite_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sprite_8h.html" target="_self">sprite.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_10_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="spritebatch_8cpp.html" target="_self">spritebatch.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_5_11_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="spritebatch_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="spritebatch_8h.html" target="_self">spritebatch.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_6_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_6_')"/><img id="img_0_6_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_6_')"/><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html" target="_self">util</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="active_8cpp.html" target="_self">active.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_6_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="active_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="active_8h.html" target="_self">active.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_6_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="syncqueue_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="syncqueue_8h.html" target="_self">syncqueue.h</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="yage_8cpp.html" target="_self">yage.cpp</a></td><td class="desc"><hr/>
+ </td></tr>
+<tr id="row_0_8_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="yage_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="yage_8h.html" target="_self">yage.h</a></td><td class="desc"><hr/>
</td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/files.js b/files.js
deleted file mode 100644
index 32b5aa1d..00000000
--- a/files.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var files =
-[
- [ "yage", "dir_0a5be4b85c8e2c05f7a9f5a803f53125.html", "dir_0a5be4b85c8e2c05f7a9f5a803f53125" ]
-]; \ No newline at end of file
diff --git a/ftv2cl.png b/ftv2cl.png
index 132f6577..3ca0f3b6 100644
--- a/ftv2cl.png
+++ b/ftv2cl.png
Binary files differ
diff --git a/ftv2doc.png b/ftv2doc.png
index 17edabff..321d92d1 100644
--- a/ftv2doc.png
+++ b/ftv2doc.png
Binary files differ
diff --git a/ftv2folderclosed.png b/ftv2folderclosed.png
index bb8ab35e..e951ffd3 100644
--- a/ftv2folderclosed.png
+++ b/ftv2folderclosed.png
Binary files differ
diff --git a/ftv2folderopen.png b/ftv2folderopen.png
index d6c7f676..593a54fa 100644
--- a/ftv2folderopen.png
+++ b/ftv2folderopen.png
Binary files differ
diff --git a/ftv2link.png b/ftv2link.png
index 17edabff..321d92d1 100644
--- a/ftv2link.png
+++ b/ftv2link.png
Binary files differ
diff --git a/ftv2mlastnode.png b/ftv2mlastnode.png
index 0b63f6d3..c3a27de1 100644
--- a/ftv2mlastnode.png
+++ b/ftv2mlastnode.png
Binary files differ
diff --git a/ftv2mnode.png b/ftv2mnode.png
index 0b63f6d3..c3a27de1 100644
--- a/ftv2mnode.png
+++ b/ftv2mnode.png
Binary files differ
diff --git a/ftv2mo.png b/ftv2mo.png
index 4bfb80f7..7623f9a5 100644
--- a/ftv2mo.png
+++ b/ftv2mo.png
Binary files differ
diff --git a/ftv2ns.png b/ftv2ns.png
index 72e3d71c..73081b11 100644
--- a/ftv2ns.png
+++ b/ftv2ns.png
Binary files differ
diff --git a/ftv2plastnode.png b/ftv2plastnode.png
index c6ee22f9..0828d7c3 100644
--- a/ftv2plastnode.png
+++ b/ftv2plastnode.png
Binary files differ
diff --git a/ftv2pnode.png b/ftv2pnode.png
index c6ee22f9..0828d7c3 100644
--- a/ftv2pnode.png
+++ b/ftv2pnode.png
Binary files differ
diff --git a/ftv2splitbar.png b/ftv2splitbar.png
index fe895f2c..50c780f6 100644
--- a/ftv2splitbar.png
+++ b/ftv2splitbar.png
Binary files differ
diff --git a/functions.html b/functions.html
index 2e997e80..6c84ce65 100644
--- a/functions.html
+++ b/functions.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -159,20 +139,20 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>add()
: <a class="el" href="classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd">yage::Logger</a>
</li>
+<li>addSystem()
+: <a class="el" href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">yage::Engine</a>
+</li>
<li>applyForce()
: <a class="el" href="classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878">yage::Body</a>
, <a class="el" href="classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b">yage::ParticleBody</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_b.html b/functions_b.html
index 54a19ae3..ebbf0c8d 100644
--- a/functions_b.html
+++ b/functions_b.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_b.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -166,14 +146,11 @@ $(document).ready(function(){initNavTree('functions_b.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_c.html b/functions_c.html
index 65c39731..3e665de3 100644
--- a/functions_c.html
+++ b/functions_c.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_c.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -179,22 +159,26 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
: <a class="el" href="classyage_1_1Matrix.html#a2148cd52008892765ad90250c68afba1">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
<li>Coordinate()
-: <a class="el" href="structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a">yage::details::Coordinate</a>
+: <a class="el" href="structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629">yage::details::Coordinate</a>
</li>
<li>create()
: <a class="el" href="classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064">yage::Active</a>
, <a class="el" href="classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745">yage::Window</a>
</li>
+<li>createEntity()
+: <a class="el" href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">yage::EntityManager</a>
+, <a class="el" href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">yage::Space</a>
+</li>
+<li>createEntityInstance()
+: <a class="el" href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">yage::EntityManager</a>
+</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_d.html b/functions_d.html
index 8f3e72be..8d60731d 100644
--- a/functions_d.html
+++ b/functions_d.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_d.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -163,14 +143,11 @@ $(document).ready(function(){initNavTree('functions_d.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_dup.js b/functions_dup.js
deleted file mode 100644
index 9dcc0689..00000000
--- a/functions_dup.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var functions_dup =
-[
- [ "a", "functions.html", null ],
- [ "b", "functions_b.html", null ],
- [ "c", "functions_c.html", null ],
- [ "d", "functions_d.html", null ],
- [ "e", "functions_e.html", null ],
- [ "f", "functions_f.html", null ],
- [ "g", "functions_g.html", null ],
- [ "h", "functions_h.html", null ],
- [ "i", "functions_i.html", null ],
- [ "k", "functions_k.html", null ],
- [ "l", "functions_l.html", null ],
- [ "m", "functions_m.html", null ],
- [ "n", "functions_n.html", null ],
- [ "o", "functions_o.html", null ],
- [ "p", "functions_p.html", null ],
- [ "r", "functions_r.html", null ],
- [ "s", "functions_s.html", null ],
- [ "t", "functions_t.html", null ],
- [ "u", "functions_u.html", null ],
- [ "v", "functions_v.html", null ],
- [ "w", "functions_w.html", null ],
- [ "x", "functions_x.html", null ],
- [ "y", "functions_y.html", null ],
- [ "z", "functions_z.html", null ],
- [ "~", "functions_~.html", null ]
-]; \ No newline at end of file
diff --git a/functions_e.html b/functions_e.html
index d5c7a36b..69fdcd69 100644
--- a/functions_e.html
+++ b/functions_e.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_e.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -152,19 +132,22 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
, <a class="el" href="classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
, <a class="el" href="classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632">yage::SpriteBatch</a>
</li>
+<li>Entity()
+: <a class="el" href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">yage::Entity</a>
+</li>
+<li>EntityManager()
+: <a class="el" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">yage::EntityManager</a>
+</li>
<li>eof
: <a class="el" href="structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177">stbi_io_callbacks</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_f.html b/functions_f.html
index f0938e22..18a6be44 100644
--- a/functions_f.html
+++ b/functions_f.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_f.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -161,14 +141,11 @@ $(document).ready(function(){initNavTree('functions_f.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_func.html b/functions_func.html
index 80333dc0..523891eb 100644
--- a/functions_func.html
+++ b/functions_func.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -114,20 +108,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_func.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -152,6 +132,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>add()
: <a class="el" href="classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd">yage::Logger</a>
</li>
+<li>addSystem()
+: <a class="el" href="classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6">yage::Engine</a>
+</li>
<li>applyForce()
: <a class="el" href="classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878">yage::Body</a>
, <a class="el" href="classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b">yage::ParticleBody</a>
@@ -204,6 +187,13 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: <a class="el" href="classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064">yage::Active</a>
, <a class="el" href="classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745">yage::Window</a>
</li>
+<li>createEntity()
+: <a class="el" href="classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b">yage::EntityManager</a>
+, <a class="el" href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">yage::Space</a>
+</li>
+<li>createEntityInstance()
+: <a class="el" href="classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de">yage::EntityManager</a>
+</li>
</ul>
@@ -222,6 +212,12 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
, <a class="el" href="classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
, <a class="el" href="classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632">yage::SpriteBatch</a>
</li>
+<li>Entity()
+: <a class="el" href="classyage_1_1Entity.html#a046099f19b3483140505938769276d8a">yage::Entity</a>
+</li>
+<li>EntityManager()
+: <a class="el" href="classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8">yage::EntityManager</a>
+</li>
</ul>
@@ -239,6 +235,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>getCol()
: <a class="el" href="classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
+<li>getHandle()
+: <a class="el" href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">yage::Entity</a>
+</li>
<li>getRow()
: <a class="el" href="classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
@@ -265,14 +264,17 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>init()
: <a class="el" href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">yage::Batch</a>
+, <a class="el" href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">yage::Engine</a>
, <a class="el" href="classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1">yage::Sprite</a>
+, <a class="el" href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">yage::System</a>
</li>
<li>inside()
: <a class="el" href="classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9">yage::Collider</a>
, <a class="el" href="classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4">yage::RectangleCollider</a>
</li>
<li>instance()
-: <a class="el" href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">yage::Logger</a>
+: <a class="el" href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">yage::Engine</a>
+, <a class="el" href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">yage::Logger</a>
</li>
</ul>
@@ -301,6 +303,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>mainLoop()
+: <a class="el" href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">yage::Engine</a>
+</li>
<li>Matrix()
: <a class="el" href="classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
@@ -425,6 +430,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>show()
: <a class="el" href="classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34">yage::Window</a>
</li>
+<li>Space()
+: <a class="el" href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">yage::Space</a>
+</li>
<li>Sprite()
: <a class="el" href="classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987">yage::Sprite</a>
</li>
@@ -464,13 +472,15 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>update()
: <a class="el" href="classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36">yage::Body</a>
, <a class="el" href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">yage::Camera</a>
+, <a class="el" href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">yage::Engine</a>
, <a class="el" href="classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c">yage::ParticleBody</a>
+, <a class="el" href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">yage::System</a>
</li>
<li>use()
: <a class="el" href="classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c">yage::Shader</a>
</li>
<li>UV()
-: <a class="el" href="structyage_1_1UV.html#ae236139f3a5f6024aac1e21bd93b7bde">yage::UV</a>
+: <a class="el" href="structyage_1_1UV.html#ac918524789292937aae5803df3c2673f">yage::UV</a>
</li>
</ul>
@@ -561,19 +571,19 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>~SpriteBatch()
: <a class="el" href="classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a">yage::SpriteBatch</a>
</li>
+<li>~System()
+: <a class="el" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">yage::System</a>
+</li>
<li>~Window()
: <a class="el" href="classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0">yage::Window</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_g.html b/functions_g.html
index ea06f21e..f81c7c67 100644
--- a/functions_g.html
+++ b/functions_g.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_g.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -153,6 +133,9 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
<li>getCol()
: <a class="el" href="classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
+<li>getHandle()
+: <a class="el" href="classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71">yage::Entity</a>
+</li>
<li>getRow()
: <a class="el" href="classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
@@ -174,14 +157,11 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_h.html b/functions_h.html
index a177f537..d6b9aca1 100644
--- a/functions_h.html
+++ b/functions_h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -156,14 +136,11 @@ $(document).ready(function(){initNavTree('functions_h.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_i.html b/functions_i.html
index 79414ad9..051aec8b 100644
--- a/functions_i.html
+++ b/functions_i.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_i.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -152,25 +132,25 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
</li>
<li>init()
: <a class="el" href="classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477">yage::Batch</a>
+, <a class="el" href="classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4">yage::Engine</a>
, <a class="el" href="classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1">yage::Sprite</a>
+, <a class="el" href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">yage::System</a>
</li>
<li>inside()
: <a class="el" href="classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9">yage::Collider</a>
, <a class="el" href="classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4">yage::RectangleCollider</a>
</li>
<li>instance()
-: <a class="el" href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">yage::Logger</a>
+: <a class="el" href="classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33">yage::Engine</a>
+, <a class="el" href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">yage::Logger</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_k.html b/functions_k.html
index bf1c6222..10a95794 100644
--- a/functions_k.html
+++ b/functions_k.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_k.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -152,14 +132,11 @@ $(document).ready(function(){initNavTree('functions_k.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_l.html b/functions_l.html
index 519cdd17..6fd3bcb9 100644
--- a/functions_l.html
+++ b/functions_l.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_l.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -168,14 +148,11 @@ $(document).ready(function(){initNavTree('functions_l.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_m.html b/functions_m.html
index 34357aae..dcf80a17 100644
--- a/functions_m.html
+++ b/functions_m.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_m.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -147,25 +127,25 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>mainLoop()
+: <a class="el" href="classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42">yage::Engine</a>
+</li>
<li>mass_
: <a class="el" href="classyage_1_1Body.html#a01b2a500e71bc88f2cb597f376bc8289">yage::Body</a>
</li>
<li>Matrix()
-: <a class="el" href="classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
+: <a class="el" href="classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b">yage::Matrix&lt; Rows, Cols, Type &gt;</a>
</li>
<li>move()
: <a class="el" href="classyage_1_1Camera.html#a012820185cceb451926bc4ef1607b324">yage::Camera</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_n.html b/functions_n.html
index acd6beb5..b1d17902 100644
--- a/functions_n.html
+++ b/functions_n.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_n.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -155,14 +135,11 @@ $(document).ready(function(){initNavTree('functions_n.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_o.html b/functions_o.html
index 2589fb27..f4feb575 100644
--- a/functions_o.html
+++ b/functions_o.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_o.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -182,14 +162,11 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_p.html b/functions_p.html
index 408b70ee..ec03b9dc 100644
--- a/functions_p.html
+++ b/functions_p.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_p.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -171,14 +151,11 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_r.html b/functions_r.html
index 031d357a..4150c3c3 100644
--- a/functions_r.html
+++ b/functions_r.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_r.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -185,14 +165,11 @@ $(document).ready(function(){initNavTree('functions_r.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_rela.html b/functions_rela.html
index d3c83ad6..424e8b74 100644
--- a/functions_rela.html
+++ b/functions_rela.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -86,20 +80,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_rela.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -124,14 +104,11 @@ $(document).ready(function(){initNavTree('functions_rela.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_s.html b/functions_s.html
index 20294ca1..dc0246ec 100644
--- a/functions_s.html
+++ b/functions_s.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_s.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -180,6 +160,9 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
<li>skip
: <a class="el" href="structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83">stbi_io_callbacks</a>
</li>
+<li>Space()
+: <a class="el" href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">yage::Space</a>
+</li>
<li>Sprite()
: <a class="el" href="classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987">yage::Sprite</a>
</li>
@@ -196,18 +179,15 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
: <a class="el" href="classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359">yage::Window</a>
</li>
<li>SyncQueue()
-: <a class="el" href="classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b">yage::SyncQueue&lt; T &gt;</a>
+: <a class="el" href="classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c">yage::SyncQueue&lt; T &gt;</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_t.html b/functions_t.html
index 90438675..b7732f98 100644
--- a/functions_t.html
+++ b/functions_t.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_t.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -169,14 +149,11 @@ $(document).ready(function(){initNavTree('functions_t.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_type.html b/functions_type.html
index 94e9208f..11b29e9f 100644
--- a/functions_type.html
+++ b/functions_type.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -86,20 +80,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_type.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -121,14 +101,11 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_u.html b/functions_u.html
index e44089d8..fb793c8e 100644
--- a/functions_u.html
+++ b/functions_u.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_u.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -153,7 +133,9 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
<li>update()
: <a class="el" href="classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36">yage::Body</a>
, <a class="el" href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">yage::Camera</a>
+, <a class="el" href="classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67">yage::Engine</a>
, <a class="el" href="classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c">yage::ParticleBody</a>
+, <a class="el" href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">yage::System</a>
</li>
<li>use()
: <a class="el" href="classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c">yage::Shader</a>
@@ -166,14 +148,11 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_v.html b/functions_v.html
index 8a7da7b5..2eadf032 100644
--- a/functions_v.html
+++ b/functions_v.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_v.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -170,14 +150,11 @@ $(document).ready(function(){initNavTree('functions_v.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_vars.html b/functions_vars.html
index b11fa6f5..46d8a69f 100644
--- a/functions_vars.html
+++ b/functions_vars.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -113,20 +107,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_vars.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -368,14 +348,11 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_w.html b/functions_w.html
index c965a4b9..bce8fe93 100644
--- a/functions_w.html
+++ b/functions_w.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_w.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -162,14 +142,11 @@ $(document).ready(function(){initNavTree('functions_w.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_x.html b/functions_x.html
index 16371b10..c1d86cfd 100644
--- a/functions_x.html
+++ b/functions_x.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_x.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -160,14 +140,11 @@ $(document).ready(function(){initNavTree('functions_x.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_y.html b/functions_y.html
index b99e794d..075ec754 100644
--- a/functions_y.html
+++ b/functions_y.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_y.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -160,14 +140,11 @@ $(document).ready(function(){initNavTree('functions_y.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_z.html b/functions_z.html
index 7d8e2079..a8b773ec 100644
--- a/functions_z.html
+++ b/functions_z.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_z.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -156,14 +136,11 @@ $(document).ready(function(){initNavTree('functions_z.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/functions_~.html b/functions_~.html
index 43449186..8e2cce8d 100644
--- a/functions_~.html
+++ b/functions_~.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -115,20 +109,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('functions_~.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -165,19 +145,19 @@ $(document).ready(function(){initNavTree('functions_~.html','');});
<li>~SpriteBatch()
: <a class="el" href="classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a">yage::SpriteBatch</a>
</li>
+<li>~System()
+: <a class="el" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">yage::System</a>
+</li>
<li>~Window()
: <a class="el" href="classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0">yage::Window</a>
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals.html b/globals.html
index 6baff45c..e22053ab 100644
--- a/globals.html
+++ b/globals.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,33 +74,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
+ <li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li class="current"><a href="#index_y"><span>y</span></a></li>
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -124,6 +108,13 @@ $(document).ready(function(){initNavTree('globals.html','');});
<div class="contents">
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>ComponentEnum
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507">component.h</a>
+</li>
+</ul>
+
+
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>fileHandle_
: <a class="el" href="logsink_8cpp.html#ae3c7a5bad8dd0db0a0a9cdd60c7b53d1">logsink.cpp</a>
@@ -138,6 +129,20 @@ $(document).ready(function(){initNavTree('globals.html','');});
</ul>
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>NAX_COMPONENTS
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419">component.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>POSITION
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1">component.h</a>
+</li>
+</ul>
+
+
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>STB_IMAGE_IMPLEMENTATION
: <a class="el" href="stb__image_8cpp.html#a18372412ad2fc3ce1e3240b3cf0efe78">stb_image.cpp</a>
@@ -298,14 +303,11 @@ $(document).ready(function(){initNavTree('globals.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals_defs.html b/globals_defs.html
index 6a316189..c79d544b 100644
--- a/globals_defs.html
+++ b/globals_defs.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,25 +74,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals_defs.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -147,14 +128,11 @@ $(document).ready(function(){initNavTree('globals_defs.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals_enum.html b/globals_enum.html
new file mode 100644
index 00000000..d53d0f44
--- /dev/null
+++ b/globals_enum.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_vars.html"><span>Variables</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>ComponentEnum
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507">component.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/globals_eval.html b/globals_eval.html
index 86f46e82..1ddd76fd 100644
--- a/globals_eval.html
+++ b/globals_eval.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,25 +74,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals_eval.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -115,6 +96,12 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
<div class="contents">
&#160;<ul>
+<li>NAX_COMPONENTS
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419">component.h</a>
+</li>
+<li>POSITION
+: <a class="el" href="component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1">component.h</a>
+</li>
<li>STBI_default
: <a class="el" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029">stb_image.h</a>
</li>
@@ -132,14 +119,11 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals_func.html b/globals_func.html
index d769d536..f959511c 100644
--- a/globals_func.html
+++ b/globals_func.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,6 +74,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
@@ -90,20 +85,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals_func.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -229,14 +210,11 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals_type.html b/globals_type.html
index dcd0a7c7..195fbea0 100644
--- a/globals_type.html
+++ b/globals_type.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,25 +74,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals_type.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -123,14 +104,11 @@ $(document).ready(function(){initNavTree('globals_type.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/globals_vars.html b/globals_vars.html
index ed55cd7b..ba3b0fdd 100644
--- a/globals_vars.html
+++ b/globals_vars.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -80,25 +74,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('globals_vars.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -120,14 +101,11 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/hierarchy.html b/hierarchy.html
index 20aaf235..b405c8c8 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -77,20 +71,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('hierarchy.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -122,57 +102,59 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_4_"><td class="entry"><img id="arr_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('4_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Collider.html" target="_self">yage::Collider</a></td><td class="desc"></td></tr>
<tr id="row_4_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1RectangleCollider.html" target="_self">yage::RectangleCollider</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Colour.html" target="_self">yage::Colour</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1Coordinate.html" target="_self">yage::details::Coordinate</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><img id="arr_7_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('7_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Drawable.html" target="_self">yage::Drawable</a></td><td class="desc"></td></tr>
-<tr id="row_7_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_7_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('7_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shape.html" target="_self">yage::Shape</a></td><td class="desc"></td></tr>
-<tr id="row_7_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Rectangle.html" target="_self">yage::Rectangle</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1Glyph.html" target="_self">yage::details::Glyph</a></td><td class="desc"><a class="el" href="structyage_1_1details_1_1Glyph.html" title="Glyph with information of the texture. ">Glyph</a> with information of the texture </td></tr>
-<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ImageLoader.html" target="_self">yage::ImageLoader</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1IoManager.html" target="_self">yage::IoManager</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Logger.html" target="_self">yage::Logger</a></td><td class="desc"><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
-</td></tr>
-<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogMessage.html" target="_self">yage::LogMessage</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogSink.html" target="_self">yage::LogSink</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, Cols, Type &gt;</a></td><td class="desc">Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes </td></tr>
-<tr id="row_15_"><td class="entry"><img id="arr_15_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('15_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, 1, double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_15_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_15_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('15_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 2, double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_15_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">yage::Vector2&lt; double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><img id="arr_16_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('16_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, 1, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_16_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('16_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 2, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">yage::Vector2&lt; Type &gt;</a></td><td class="desc">2D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_16_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_16_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('16_1_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 3, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_1_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector3.html" target="_self">yage::Vector3&lt; Type &gt;</a></td><td class="desc">3D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_16_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_16_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('16_2_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 4, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_2_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector4.html" target="_self">yage::Vector4&lt; Type &gt;</a></td><td class="desc">4D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
-<tr id="row_16_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; Rows, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_17_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1LogMessage_1_1Meta.html" target="_self">yage::LogMessage::Meta</a></td><td class="desc"></td></tr>
-<tr id="row_18_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Position.html" target="_self">yage::Position</a></td><td class="desc"></td></tr>
-<tr id="row_19_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1RenderBatch.html" target="_self">yage::details::RenderBatch</a></td><td class="desc"></td></tr>
-<tr id="row_20_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ResourceManager.html" target="_self">yage::ResourceManager</a></td><td class="desc"></td></tr>
-<tr id="row_21_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1details_1_1Row.html" target="_self">yage::details::Row&lt; Rows, Cols, Type &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_22_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shader.html" target="_self">yage::Shader</a></td><td class="desc"></td></tr>
-<tr id="row_23_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Sprite.html" target="_self">yage::Sprite</a></td><td class="desc"></td></tr>
-<tr id="row_24_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteBatch.html" target="_self">yage::SpriteBatch</a></td><td class="desc"></td></tr>
-<tr id="row_25_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteSheet.html" target="_self">yage::SpriteSheet</a></td><td class="desc"></td></tr>
-<tr id="row_26_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structstbi__io__callbacks.html" target="_self">stbi_io_callbacks</a></td><td class="desc"></td></tr>
-<tr id="row_27_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">yage::SyncQueue&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_28_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">yage::SyncQueue&lt; Callback &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_29_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Texture.html" target="_self">yage::Texture</a></td><td class="desc"></td></tr>
-<tr id="row_30_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1TextureCache.html" target="_self">yage::TextureCache</a></td><td class="desc"></td></tr>
-<tr id="row_31_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1UV.html" target="_self">yage::UV</a></td><td class="desc"></td></tr>
-<tr id="row_32_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Vertex.html" target="_self">yage::Vertex</a></td><td class="desc"></td></tr>
-<tr id="row_33_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Window.html" target="_self">yage::Window</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classComponent.html" target="_self">Component</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1Coordinate.html" target="_self">yage::details::Coordinate</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Drawable.html" target="_self">yage::Drawable</a></td><td class="desc"></td></tr>
+<tr id="row_8_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_8_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('8_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shape.html" target="_self">yage::Shape</a></td><td class="desc"></td></tr>
+<tr id="row_8_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Rectangle.html" target="_self">yage::Rectangle</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Engine.html" target="_self">yage::Engine</a></td><td class="desc">Main engine class that contains a systems, the main loop and the update function that updates all the systems </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Entity.html" target="_self">yage::Entity</a></td><td class="desc"><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class </td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1EntityManager.html" target="_self">yage::EntityManager</a></td><td class="desc">Manages entities in a space </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1Glyph.html" target="_self">yage::details::Glyph</a></td><td class="desc"><a class="el" href="structyage_1_1details_1_1Glyph.html" title="Glyph with information of the texture. ">Glyph</a> with information of the texture </td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ImageLoader.html" target="_self">yage::ImageLoader</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1IoManager.html" target="_self">yage::IoManager</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Logger.html" target="_self">yage::Logger</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogMessage.html" target="_self">yage::LogMessage</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1LogSink.html" target="_self">yage::LogSink</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, Cols, Type &gt;</a></td><td class="desc">Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes </td></tr>
+<tr id="row_19_"><td class="entry"><img id="arr_19_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('19_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, 1, double &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_19_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_19_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('19_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 2, double &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_19_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">yage::Vector2&lt; double &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img id="arr_20_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('20_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Matrix.html" target="_self">yage::Matrix&lt; Rows, 1, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_20_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('20_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 2, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_0_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector2.html" target="_self">yage::Vector2&lt; Type &gt;</a></td><td class="desc">2D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_20_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_20_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('20_1_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 3, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_1_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector3.html" target="_self">yage::Vector3&lt; Type &gt;</a></td><td class="desc">3D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_20_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_20_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('20_2_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; 4, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_2_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector4.html" target="_self">yage::Vector4&lt; Type &gt;</a></td><td class="desc">4D <a class="el" href="classyage_1_1Vector.html">Vector</a> class </td></tr>
+<tr id="row_20_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Vector.html" target="_self">yage::Vector&lt; Rows, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_21_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1LogMessage_1_1Meta.html" target="_self">yage::LogMessage::Meta</a></td><td class="desc"></td></tr>
+<tr id="row_22_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Position.html" target="_self">yage::Position</a></td><td class="desc"></td></tr>
+<tr id="row_23_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1details_1_1RenderBatch.html" target="_self">yage::details::RenderBatch</a></td><td class="desc"></td></tr>
+<tr id="row_24_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1ResourceManager.html" target="_self">yage::ResourceManager</a></td><td class="desc"></td></tr>
+<tr id="row_25_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1details_1_1Row.html" target="_self">yage::details::Row&lt; Rows, Cols, Type &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_26_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Shader.html" target="_self">yage::Shader</a></td><td class="desc"></td></tr>
+<tr id="row_27_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Space.html" target="_self">yage::Space</a></td><td class="desc"><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them </td></tr>
+<tr id="row_28_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Sprite.html" target="_self">yage::Sprite</a></td><td class="desc"></td></tr>
+<tr id="row_29_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteBatch.html" target="_self">yage::SpriteBatch</a></td><td class="desc"></td></tr>
+<tr id="row_30_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SpriteSheet.html" target="_self">yage::SpriteSheet</a></td><td class="desc"></td></tr>
+<tr id="row_31_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structstbi__io__callbacks.html" target="_self">stbi_io_callbacks</a></td><td class="desc"></td></tr>
+<tr id="row_32_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">yage::SyncQueue&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_33_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1SyncQueue.html" target="_self">yage::SyncQueue&lt; Callback &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_34_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1System.html" target="_self">yage::System</a></td><td class="desc"><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine </td></tr>
+<tr id="row_35_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Texture.html" target="_self">yage::Texture</a></td><td class="desc"></td></tr>
+<tr id="row_36_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1TextureCache.html" target="_self">yage::TextureCache</a></td><td class="desc"></td></tr>
+<tr id="row_37_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1UV.html" target="_self">yage::UV</a></td><td class="desc"></td></tr>
+<tr id="row_38_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structyage_1_1Vertex.html" target="_self">yage::Vertex</a></td><td class="desc"></td></tr>
+<tr id="row_39_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classyage_1_1Window.html" target="_self">yage::Window</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/hierarchy.js b/hierarchy.js
deleted file mode 100644
index b42d6759..00000000
--- a/hierarchy.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var hierarchy =
-[
- [ "yage::Active", "classyage_1_1Active.html", null ],
- [ "yage::Batch", "classyage_1_1Batch.html", null ],
- [ "yage::Body", "classyage_1_1Body.html", [
- [ "yage::CollisionBody", "classyage_1_1CollisionBody.html", null ],
- [ "yage::ParticleBody", "classyage_1_1ParticleBody.html", [
- [ "yage::RigidBody", "classyage_1_1RigidBody.html", null ]
- ] ]
- ] ],
- [ "yage::Camera", "classyage_1_1Camera.html", null ],
- [ "yage::Collider", "classyage_1_1Collider.html", [
- [ "yage::RectangleCollider", "classyage_1_1RectangleCollider.html", null ]
- ] ],
- [ "yage::Colour", "structyage_1_1Colour.html", null ],
- [ "yage::details::Coordinate", "structyage_1_1details_1_1Coordinate.html", null ],
- [ "yage::Drawable", "classyage_1_1Drawable.html", [
- [ "yage::Shape", "classyage_1_1Shape.html", [
- [ "yage::Rectangle", "classyage_1_1Rectangle.html", null ]
- ] ]
- ] ],
- [ "yage::details::Glyph", "structyage_1_1details_1_1Glyph.html", null ],
- [ "yage::ImageLoader", "classyage_1_1ImageLoader.html", null ],
- [ "yage::IoManager", "classyage_1_1IoManager.html", null ],
- [ "yage::Logger", "classyage_1_1Logger.html", null ],
- [ "yage::LogMessage", "classyage_1_1LogMessage.html", null ],
- [ "yage::LogSink", "classyage_1_1LogSink.html", null ],
- [ "yage::Matrix< Rows, Cols, Type >", "classyage_1_1Matrix.html", null ],
- [ "yage::Matrix< Rows, 1, double >", "classyage_1_1Matrix.html", [
- [ "yage::Vector< 2, double >", "classyage_1_1Vector.html", [
- [ "yage::Vector2< double >", "classyage_1_1Vector2.html", null ]
- ] ]
- ] ],
- [ "yage::Matrix< Rows, 1, Type >", "classyage_1_1Matrix.html", [
- [ "yage::Vector< 2, Type >", "classyage_1_1Vector.html", [
- [ "yage::Vector2< Type >", "classyage_1_1Vector2.html", null ]
- ] ],
- [ "yage::Vector< 3, Type >", "classyage_1_1Vector.html", [
- [ "yage::Vector3< Type >", "classyage_1_1Vector3.html", null ]
- ] ],
- [ "yage::Vector< 4, Type >", "classyage_1_1Vector.html", [
- [ "yage::Vector4< Type >", "classyage_1_1Vector4.html", null ]
- ] ],
- [ "yage::Vector< Rows, Type >", "classyage_1_1Vector.html", null ]
- ] ],
- [ "yage::LogMessage::Meta", "structyage_1_1LogMessage_1_1Meta.html", null ],
- [ "yage::Position", "structyage_1_1Position.html", null ],
- [ "yage::details::RenderBatch", "structyage_1_1details_1_1RenderBatch.html", null ],
- [ "yage::ResourceManager", "classyage_1_1ResourceManager.html", null ],
- [ "yage::details::Row< Rows, Cols, Type >", "classyage_1_1details_1_1Row.html", null ],
- [ "yage::Shader", "classyage_1_1Shader.html", null ],
- [ "yage::Sprite", "classyage_1_1Sprite.html", null ],
- [ "yage::SpriteBatch", "classyage_1_1SpriteBatch.html", null ],
- [ "yage::SpriteSheet", "classyage_1_1SpriteSheet.html", null ],
- [ "stbi_io_callbacks", "structstbi__io__callbacks.html", null ],
- [ "yage::SyncQueue< T >", "classyage_1_1SyncQueue.html", null ],
- [ "yage::SyncQueue< Callback >", "classyage_1_1SyncQueue.html", null ],
- [ "yage::Texture", "structyage_1_1Texture.html", null ],
- [ "yage::TextureCache", "classyage_1_1TextureCache.html", null ],
- [ "yage::UV", "structyage_1_1UV.html", null ],
- [ "yage::Vertex", "structyage_1_1Vertex.html", null ],
- [ "yage::Window", "classyage_1_1Window.html", null ]
-]; \ No newline at end of file
diff --git a/imageloader_8cpp.html b/imageloader_8cpp.html
index f8923209..a3b54608 100644
--- a/imageloader_8cpp.html
+++ b/imageloader_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('imageloader_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('imageloader_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -125,7 +109,7 @@ $(document).ready(function(){initNavTree('imageloader_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -133,15 +117,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="imageloader_8cpp.html">imageloader.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/imageloader_8h.html b/imageloader_8h.html
index 4a7df645..41483581 100644
--- a/imageloader_8h.html
+++ b/imageloader_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('imageloader_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('imageloader_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="imageloader_8h.html">imageloader.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/imageloader_8h_source.html b/imageloader_8h_source.html
index efccb44a..33f1786d 100644
--- a/imageloader_8h_source.html
+++ b/imageloader_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('imageloader_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('imageloader_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">imageloader.h</div> </div>
@@ -132,15 +116,11 @@ $(document).ready(function(){initNavTree('imageloader_8h_source.html','');});
<div class="ttc" id="classyage_1_1ImageLoader_html_ad8dcdaaed43713f07723f2b6719d1b32"><div class="ttname"><a href="classyage_1_1ImageLoader.html#ad8dcdaaed43713f07723f2b6719d1b32">yage::ImageLoader::loadPng</a></div><div class="ttdeci">static Texture loadPng(const std::string &amp;file_path)</div><div class="ttdef"><b>Definition:</b> imageloader.cpp:22</div></div>
<div class="ttc" id="structyage_1_1Texture_html"><div class="ttname"><a href="structyage_1_1Texture.html">yage::Texture</a></div><div class="ttdef"><b>Definition:</b> texture.h:17</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="imageloader_8h.html">imageloader.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/index.html b/index.html
index 1b785fc3..a8deb751 100644
--- a/index.html
+++ b/index.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -69,20 +63,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('index.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -102,31 +82,21 @@ $(document).ready(function(){initNavTree('index.html','');});
<div class="title">YAGE </div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><div class="image">
-<img src="https://travis-ci.org/ymherklotz/YAGE.svg?branch=master" alt="master-build"/>
-</div>
-<h2>Introduction </h2>
-<p>YAGE stands for Yet Another Game Engine. It is a game engine that is being developed for a game called <a href="https://github.com/ymherklotz/Arider">Arider</a>. It uses OpenGL and GLFW for the window creation and management and graphics. It is also going to be a general game engine for use with other games in the similar style.</p>
-<p>The inspiration for this game engine is to learn about OpenGL and create an optimised 2D game engine with a simple API that can be used to easily create simple 2D games.</p>
-<p>The full documentation can be seen <a href="https://www.yannherklotz.com/YAGE">here</a>.</p>
-<h2>Installation and usage </h2>
-<p>To use YAGE for your own game, you should link it as a static library and include the <a href="/include/YAGE/yage.h">yage.h</a> header in your project. To link the project using cmake, the library has to be added as a subdirectory and then linked with the name <code>yage</code>.</p>
-<h2>Build and Testing </h2>
-<p>To compile YAGE, create a build directory from the base dirqectory. Then call cmake and point it to the directory containing. <a href="/CMakeLists.txt">CMakeLists.txt</a>. For example, one can use the following commands</p>
-<p>``` shell mkdir -p build cd build cmake .. ```</p>
-<p>The test suite can then be run using</p>
-<p>``` shell cd build/tests &amp;&amp; ctest ```</p>
+<div class="textblock"><p>YAGE (Yet Another Game Engine) is a game engine that was written to learn about graphics and eventually be used to program games. It focuses mostly on tile based 2D games but it will eventually be expanded to handle orthographic views and finally full 3D.</p>
+<h2>Guides </h2>
+<p>Below are some guides for different aspects of the game engine and how to use it.</p>
+<ul>
+<li><a class="el" href="spritebatch_guide.html">Sprite Batching</a>: Used to draw efficient 2D sprites and tiles.</li>
+<li><a class="el" href="logger_guide.html">Logger</a>: Asynchronous logger.</li>
+</ul>
<h2>License </h2>
-<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> &ndash; MIT License, see file <a href="/LICENSE">LICENSE</a> for more details. </p>
+<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> MIT License, see LICENSE file for more details. </p>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/input_8h.html b/input_8h.html
index 3993b952..7d4e1a6e 100644
--- a/input_8h.html
+++ b/input_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('input_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('input_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -123,7 +107,7 @@ $(document).ready(function(){initNavTree('input_8h.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
@@ -308,15 +292,11 @@ Enumerations</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="input_8h.html">input.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/input_8h.js b/input_8h.js
deleted file mode 100644
index 01947691..00000000
--- a/input_8h.js
+++ /dev/null
@@ -1,128 +0,0 @@
-var input_8h =
-[
- [ "GLFW_INCLUDE_NONE", "input_8h.html#a088324ad8995e3eb76024e3e79083d48", null ],
- [ "key", "input_8h.html#ad5a9307442e5daa8810aff942564a822", [
- [ "UNKNOWN", "input_8h.html#ad5a9307442e5daa8810aff942564a822a696b031073e74bf2cb98e5ef201d4aa3", null ],
- [ "SPACE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a6506ae39fdca9845e3a6de3865183e57", null ],
- [ "APOSTROPHE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a9df35983f4024e31955de0f1e545e888", null ],
- [ "COMMA", "input_8h.html#ad5a9307442e5daa8810aff942564a822a4d9b3e9fc12849d060371eb65154c751", null ],
- [ "MINUS", "input_8h.html#ad5a9307442e5daa8810aff942564a822affc0d9b54a1fe677c4c9e6b050e67c81", null ],
- [ "PERIOD", "input_8h.html#ad5a9307442e5daa8810aff942564a822ade58a28573783fe95304a260ccd90362", null ],
- [ "SLASH", "input_8h.html#ad5a9307442e5daa8810aff942564a822a646da671ca01bb5d84dbb5fb2238dc8e", null ],
- [ "NUM0", "input_8h.html#ad5a9307442e5daa8810aff942564a822a22517dfceb401f35b1b59999ba74c700", null ],
- [ "NUM1", "input_8h.html#ad5a9307442e5daa8810aff942564a822a71ddb986230a88155bf74e65f644dda4", null ],
- [ "NUM2", "input_8h.html#ad5a9307442e5daa8810aff942564a822a78232351eaf00755d136afad0745157b", null ],
- [ "NUM3", "input_8h.html#ad5a9307442e5daa8810aff942564a822acf6d2dfd5fb43f33ec09dbad7a90593c", null ],
- [ "NUM4", "input_8h.html#ad5a9307442e5daa8810aff942564a822abb4e75dde7d107cc573c77dc42a7acab", null ],
- [ "NUM5", "input_8h.html#ad5a9307442e5daa8810aff942564a822a6e2e9ebea6f89bc9235928b0794bc261", null ],
- [ "NUM6", "input_8h.html#ad5a9307442e5daa8810aff942564a822aa8ecc4d78b0864cd22b788de2b48921f", null ],
- [ "NUM7", "input_8h.html#ad5a9307442e5daa8810aff942564a822a65d3215a061ffc8962994cdf549e31e4", null ],
- [ "NUM8", "input_8h.html#ad5a9307442e5daa8810aff942564a822ac63bd90003103ca242fe9202fe10c3e9", null ],
- [ "NUM9", "input_8h.html#ad5a9307442e5daa8810aff942564a822abb2cbd684a16faa1624ae1b3a4ceaa2c", null ],
- [ "SEMICOLON", "input_8h.html#ad5a9307442e5daa8810aff942564a822abaaceccc27b1d4e0968c999583f97de5", null ],
- [ "EQUAL", "input_8h.html#ad5a9307442e5daa8810aff942564a822a969f331a87d8c958473c32b4d0e61a44", null ],
- [ "A", "input_8h.html#ad5a9307442e5daa8810aff942564a822a7fc56270e7a70fa81a5935b72eacbe29", null ],
- [ "B", "input_8h.html#ad5a9307442e5daa8810aff942564a822a9d5ed678fe57bcca610140957afab571", null ],
- [ "C", "input_8h.html#ad5a9307442e5daa8810aff942564a822a0d61f8370cad1d412f80b84d143e1257", null ],
- [ "D", "input_8h.html#ad5a9307442e5daa8810aff942564a822af623e75af30e62bbd73d6df5b50bb7b5", null ],
- [ "E", "input_8h.html#ad5a9307442e5daa8810aff942564a822a3a3ea00cfc35332cedf6e5e9a32e94da", null ],
- [ "F", "input_8h.html#ad5a9307442e5daa8810aff942564a822a800618943025315f869e4e1f09471012", null ],
- [ "G", "input_8h.html#ad5a9307442e5daa8810aff942564a822adfcf28d0734569a6a693bc8194de62bf", null ],
- [ "H", "input_8h.html#ad5a9307442e5daa8810aff942564a822ac1d9f50f86825a1a2302ec2449c17196", null ],
- [ "I", "input_8h.html#ad5a9307442e5daa8810aff942564a822add7536794b63bf90eccfd37f9b147d7f", null ],
- [ "J", "input_8h.html#ad5a9307442e5daa8810aff942564a822aff44570aca8241914870afbc310cdb85", null ],
- [ "K", "input_8h.html#ad5a9307442e5daa8810aff942564a822aa5f3c6a11b03839d46af9fb43c97c188", null ],
- [ "L", "input_8h.html#ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587", null ],
- [ "M", "input_8h.html#ad5a9307442e5daa8810aff942564a822a69691c7bdcc3ce6d5d8a1361f22d04ac", null ],
- [ "N", "input_8h.html#ad5a9307442e5daa8810aff942564a822a8d9c307cb7f3c4a32822a51922d1ceaa", null ],
- [ "O", "input_8h.html#ad5a9307442e5daa8810aff942564a822af186217753c37b9b9f958d906208506e", null ],
- [ "P", "input_8h.html#ad5a9307442e5daa8810aff942564a822a44c29edb103a2872f519ad0c9a0fdaaa", null ],
- [ "Q", "input_8h.html#ad5a9307442e5daa8810aff942564a822af09564c9ca56850d4cd6b3319e541aee", null ],
- [ "R", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae1e1d3d40573127e9ee0480caf1283d6", null ],
- [ "S", "input_8h.html#ad5a9307442e5daa8810aff942564a822a5dbc98dcc983a70728bd082d1a47546e", null ],
- [ "T", "input_8h.html#ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3", null ],
- [ "U", "input_8h.html#ad5a9307442e5daa8810aff942564a822a4c614360da93c0a041b22e537de151eb", null ],
- [ "V", "input_8h.html#ad5a9307442e5daa8810aff942564a822a5206560a306a2e085a437fd258eb57ce", null ],
- [ "W", "input_8h.html#ad5a9307442e5daa8810aff942564a822a61e9c06ea9a85a5088a499df6458d276", null ],
- [ "X", "input_8h.html#ad5a9307442e5daa8810aff942564a822a02129bb861061d1a052c592e2dc6b383", null ],
- [ "Y", "input_8h.html#ad5a9307442e5daa8810aff942564a822a57cec4137b614c87cb4e24a3d003a3e0", null ],
- [ "Z", "input_8h.html#ad5a9307442e5daa8810aff942564a822a21c2e59531c8710156d34a3c30ac81d5", null ],
- [ "LEfT_BRACKET", "input_8h.html#ad5a9307442e5daa8810aff942564a822a91a9360a45bb242906ee86ecbf9ac7c4", null ],
- [ "BACKSLASH", "input_8h.html#ad5a9307442e5daa8810aff942564a822aecb4a6f3440c2ed0dff59f17375a27c0", null ],
- [ "RIGHT_BRACKET", "input_8h.html#ad5a9307442e5daa8810aff942564a822a91d8d0b84f26c3e30fb064ea4fc1090f", null ],
- [ "GRAVE_ACCENT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a1547ad05c44be2cc614be32159bf666b", null ],
- [ "WORLD_1", "input_8h.html#ad5a9307442e5daa8810aff942564a822a1ab6dcd85380f2d3e882fbd2f6fda566", null ],
- [ "WORLD_2", "input_8h.html#ad5a9307442e5daa8810aff942564a822acb8104ace1979f9537c7f40de0622a22", null ],
- [ "ESCAPE", "input_8h.html#ad5a9307442e5daa8810aff942564a822adaaedac409335b869929ea43fa44be5d", null ],
- [ "ENTER", "input_8h.html#ad5a9307442e5daa8810aff942564a822a331b3100a485d8cacff1d3df8e9b0c13", null ],
- [ "TAB", "input_8h.html#ad5a9307442e5daa8810aff942564a822af684bf05fa3e81528c84d1d281d839f1", null ],
- [ "BACKSPACE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a6f5d8e41084b4d3d47fa621c459eede1", null ],
- [ "INSERT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a61ee777e7f71dc466c3b2c685d8d313b", null ],
- [ "DELETE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a32f68a60cef40faedbc6af20298c1a1e", null ],
- [ "RIGHT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a21507b40c80068eda19865706fdc2403", null ],
- [ "LEFT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a684d325a7303f52e64011467ff5c5758", null ],
- [ "DOWN", "input_8h.html#ad5a9307442e5daa8810aff942564a822ac4e0e4e3118472beeb2ae75827450f1f", null ],
- [ "UP", "input_8h.html#ad5a9307442e5daa8810aff942564a822afbaedde498cdead4f2780217646e9ba1", null ],
- [ "PAGE_UP", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae791d936f894ce58dd18bf603edcb9b4", null ],
- [ "PAGE_DOWN", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae9a23c5ce3d34b40123d65ca14b2e88f", null ],
- [ "HOME", "input_8h.html#ad5a9307442e5daa8810aff942564a822a710533dd879dd1202e5c73b27705bf02", null ],
- [ "END", "input_8h.html#ad5a9307442e5daa8810aff942564a822ab1a326c06d88bf042f73d70f50197905", null ],
- [ "CAPS_LOCK", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae40af1d5cc55c55ae0bb25953f7a7ee2", null ],
- [ "SCROLL_LOCK", "input_8h.html#ad5a9307442e5daa8810aff942564a822a324bf1f059b99e2882bc1d567080d8ed", null ],
- [ "NUM_LOCK", "input_8h.html#ad5a9307442e5daa8810aff942564a822acb0d0bf9279e78f982deba761110e434", null ],
- [ "PRINT_SCREEN", "input_8h.html#ad5a9307442e5daa8810aff942564a822a853f8ded7a96b5a765704974e6a3ca96", null ],
- [ "PAUSE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a291554596c183e837f0a6bec3767c891", null ],
- [ "F1", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae1dffc8709f31a4987c8a88334107e89", null ],
- [ "F2", "input_8h.html#ad5a9307442e5daa8810aff942564a822afe5c3684dce76cdd9f7f42430868aa74", null ],
- [ "F3", "input_8h.html#ad5a9307442e5daa8810aff942564a822a4b6bf4b531770872d4328ce69bef5627", null ],
- [ "F4", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae7e0e72401a9f2718ed0f39f2861d702", null ],
- [ "F5", "input_8h.html#ad5a9307442e5daa8810aff942564a822a37f438df6a6d5ba4c17ef8ca58562f00", null ],
- [ "F6", "input_8h.html#ad5a9307442e5daa8810aff942564a822a1faf42f2823f184eb2c9f0dffe5d73f2", null ],
- [ "F7", "input_8h.html#ad5a9307442e5daa8810aff942564a822a47489eb597b7db34caa24b1fc78fc839", null ],
- [ "F8", "input_8h.html#ad5a9307442e5daa8810aff942564a822a4787509ad9f9d747a81a30e9dde3d4a7", null ],
- [ "F9", "input_8h.html#ad5a9307442e5daa8810aff942564a822a892a245e287c163080b23db737d3c4c9", null ],
- [ "F10", "input_8h.html#ad5a9307442e5daa8810aff942564a822ab213ce22ca6ad4eda8db82966b9b6e5a", null ],
- [ "F11", "input_8h.html#ad5a9307442e5daa8810aff942564a822a643b0662422d1d0dffa3fca2e2bf28a8", null ],
- [ "F12", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae902674982fc99aa343cdd94da7476c3", null ],
- [ "F13", "input_8h.html#ad5a9307442e5daa8810aff942564a822a95dfde4807d4d6a9eec499203b3c24a0", null ],
- [ "F14", "input_8h.html#ad5a9307442e5daa8810aff942564a822a2468649b6215c4cdd2aef5095b3f5932", null ],
- [ "F15", "input_8h.html#ad5a9307442e5daa8810aff942564a822ae53b55851b9ff4979f2c3ff434a4a138", null ],
- [ "F16", "input_8h.html#ad5a9307442e5daa8810aff942564a822a56d8353718e6fdc78b8d69078a2cdb94", null ],
- [ "F17", "input_8h.html#ad5a9307442e5daa8810aff942564a822affa5882d1ddcf903bf0d0dbc30bfc604", null ],
- [ "F18", "input_8h.html#ad5a9307442e5daa8810aff942564a822a810b30cdfc07fd7fff553a94b828ff78", null ],
- [ "F19", "input_8h.html#ad5a9307442e5daa8810aff942564a822acd7c2a221ef5d0a34acc0bcd679b2054", null ],
- [ "F20", "input_8h.html#ad5a9307442e5daa8810aff942564a822afc335adb3d69d3d8270769e1923ea4dc", null ],
- [ "F21", "input_8h.html#ad5a9307442e5daa8810aff942564a822a77e9eee7c579eef5f3731ecf1053c02e", null ],
- [ "F22", "input_8h.html#ad5a9307442e5daa8810aff942564a822a7fa06ead699fcbd63132370ffe13335a", null ],
- [ "F23", "input_8h.html#ad5a9307442e5daa8810aff942564a822a889645d530078147e7dc69a9caadc31e", null ],
- [ "F24", "input_8h.html#ad5a9307442e5daa8810aff942564a822aebd7820c520d05eca2d775c37d141273", null ],
- [ "F25", "input_8h.html#ad5a9307442e5daa8810aff942564a822aabf9846f265ae3dea4bf9d740f5cb1aa", null ],
- [ "KP_0", "input_8h.html#ad5a9307442e5daa8810aff942564a822affb2ce8868d49c78376bf7e76c88fd52", null ],
- [ "KP_1", "input_8h.html#ad5a9307442e5daa8810aff942564a822afdcbdc22f7e22388bf5905c290bcfe4b", null ],
- [ "KP_2", "input_8h.html#ad5a9307442e5daa8810aff942564a822a2d0bfa737eccfce7842cd2230eed6712", null ],
- [ "KP_3", "input_8h.html#ad5a9307442e5daa8810aff942564a822a766b4a88cba7645629bac70fd01d8275", null ],
- [ "KP_4", "input_8h.html#ad5a9307442e5daa8810aff942564a822a9c56f942b051ba23447e108e16a8b23b", null ],
- [ "KP_5", "input_8h.html#ad5a9307442e5daa8810aff942564a822adc271d081ca9fcbefdc42998313398d8", null ],
- [ "KP_6", "input_8h.html#ad5a9307442e5daa8810aff942564a822a2091809ab6bdbc0a1975bf61d6099748", null ],
- [ "KP_7", "input_8h.html#ad5a9307442e5daa8810aff942564a822a71f42e8faf0fb7cb14174c8481461c00", null ],
- [ "KP_8", "input_8h.html#ad5a9307442e5daa8810aff942564a822a62e75b78c155e8549c5c5edb434a7757", null ],
- [ "KP_9", "input_8h.html#ad5a9307442e5daa8810aff942564a822a3d548437292c0cd1662fc30d420f2c27", null ],
- [ "KP_DECIMAL", "input_8h.html#ad5a9307442e5daa8810aff942564a822a1a9c94725005bc4759507db8acc8da33", null ],
- [ "KP_DIVIDE", "input_8h.html#ad5a9307442e5daa8810aff942564a822a7c333963ed187368820c5343b355e5bc", null ],
- [ "KP_MULTIPLY", "input_8h.html#ad5a9307442e5daa8810aff942564a822a2140df7839a3713724b35168defcc975", null ],
- [ "KP_SUBTRACT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a17de1e647789892e1fb512bf04db4866", null ],
- [ "KP_ADD", "input_8h.html#ad5a9307442e5daa8810aff942564a822a30808a0391df7790292aa5c13f6195e4", null ],
- [ "KP_ENTER", "input_8h.html#ad5a9307442e5daa8810aff942564a822adea24610606fb34c587a8fe8ed8f8389", null ],
- [ "KP_EQUAL", "input_8h.html#ad5a9307442e5daa8810aff942564a822a2cfe3b4f9911c5899d79f171d6b9cc4a", null ],
- [ "LEFT_SHIFT", "input_8h.html#ad5a9307442e5daa8810aff942564a822ab6c7e6204e97690efd79d6f513ed5613", null ],
- [ "LEFT_CONTROL", "input_8h.html#ad5a9307442e5daa8810aff942564a822addf133566f544b297f2f84874c283589", null ],
- [ "LEFT_ALT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a3a92f3bbf26e4ea5ea7ce7db2f432c56", null ],
- [ "LEFT_SUPER", "input_8h.html#ad5a9307442e5daa8810aff942564a822afd816cf0346d4939b4cf3bed78dd7fde", null ],
- [ "RIGHT_SHIFT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a63a707029860972efa1c44ac6016e098", null ],
- [ "RIGHT_CONTROL", "input_8h.html#ad5a9307442e5daa8810aff942564a822a80cdb34a10d276950f8b20b6814c9194", null ],
- [ "RIGHT_ALT", "input_8h.html#ad5a9307442e5daa8810aff942564a822a0123827c03dce5d07ebd43bd649a1073", null ],
- [ "RIGHT_SUPER", "input_8h.html#ad5a9307442e5daa8810aff942564a822a8825bb5d58b44b72465799553acb964d", null ],
- [ "MENU", "input_8h.html#ad5a9307442e5daa8810aff942564a822a3ed53fbeb1eab0443561b68ca0c0b5cf", null ],
- [ "LAST", "input_8h.html#ad5a9307442e5daa8810aff942564a822af447f5c03508de4d88e340390ba7c78f", null ]
- ] ]
-]; \ No newline at end of file
diff --git a/input_8h_source.html b/input_8h_source.html
index c1d50815..1ed993e7 100644
--- a/input_8h_source.html
+++ b/input_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('input_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('input_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">input.h</div> </div>
@@ -376,15 +360,11 @@ $(document).ready(function(){initNavTree('input_8h_source.html','');});
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822affb2ce8868d49c78376bf7e76c88fd52"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822affb2ce8868d49c78376bf7e76c88fd52">yage::key::KP_0</a></div></div>
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822a37f438df6a6d5ba4c17ef8ca58562f00"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822a37f438df6a6d5ba4c17ef8ca58562f00">yage::key::F5</a></div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="input_8h.html">input.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/iomanager_8cpp.html b/iomanager_8cpp.html
index 047585fe..43f8e24f 100644
--- a/iomanager_8cpp.html
+++ b/iomanager_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('iomanager_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('iomanager_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -121,7 +105,7 @@ $(document).ready(function(){initNavTree('iomanager_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -129,15 +113,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="iomanager_8cpp.html">iomanager.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/iomanager_8h.html b/iomanager_8h.html
index 62fe76d2..29d07fa5 100644
--- a/iomanager_8h.html
+++ b/iomanager_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('iomanager_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('iomanager_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="iomanager_8h.html">iomanager.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/iomanager_8h_source.html b/iomanager_8h_source.html
index 1f52c3dc..9cc73de4 100644
--- a/iomanager_8h_source.html
+++ b/iomanager_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('iomanager_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('iomanager_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">iomanager.h</div> </div>
@@ -131,15 +115,11 @@ $(document).ready(function(){initNavTree('iomanager_8h_source.html','');});
<div class="ttc" id="classyage_1_1IoManager_html_a75d13ca634df592e44e4152fedcd446d"><div class="ttname"><a href="classyage_1_1IoManager.html#a75d13ca634df592e44e4152fedcd446d">yage::IoManager::readFileToBuffer</a></div><div class="ttdeci">static bool readFileToBuffer(const std::string &amp;file_path, std::vector&lt; unsigned char &gt; &amp;buffer)</div><div class="ttdef"><b>Definition:</b> iomanager.cpp:17</div></div>
<div class="ttc" id="classyage_1_1IoManager_html"><div class="ttname"><a href="classyage_1_1IoManager.html">yage::IoManager</a></div><div class="ttdef"><b>Definition:</b> iomanager.h:18</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="iomanager_8h.html">iomanager.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/jquery.js b/jquery.js
index 3db33e62..c197801c 100644
--- a/jquery.js
+++ b/jquery.js
@@ -29,44 +29,3 @@ ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax
if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
})}})(window);
-/*!
- * jQuery UI 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
- * jQuery UI Widget 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
- * jQuery UI Mouse 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;
-p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
- * jQuery hashchange event - v1.3 - 7/21/2010
- * http://benalman.com/projects/jquery-hashchange-plugin/
- *
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
-(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
diff --git a/logger_8cpp.html b/logger_8cpp.html
index 08278769..d2a4ded1 100644
--- a/logger_8cpp.html
+++ b/logger_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logger_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logger_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -125,7 +109,7 @@ $(document).ready(function(){initNavTree('logger_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -133,15 +117,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logger_8cpp.html">logger.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logger_8h.html b/logger_8h.html
index 1b7bb770..8040d16f 100644
--- a/logger_8h.html
+++ b/logger_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logger_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logger_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -129,14 +113,12 @@ $(document).ready(function(){initNavTree('logger_8h.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Logger.html">yage::Logger</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
- <a href="classyage_1_1Logger.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
@@ -232,15 +214,11 @@ Macros</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logger_8h.html">logger.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logger_8h.js b/logger_8h.js
deleted file mode 100644
index 2daf6992..00000000
--- a/logger_8h.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var logger_8h =
-[
- [ "Logger", "classyage_1_1Logger.html", "classyage_1_1Logger" ],
- [ "yLogDebug", "logger_8h.html#a0061fe08a4e2d9ed843a782044d3528f", null ],
- [ "yLogError", "logger_8h.html#ac71f194a096b3d7b4cf4ec448ee8b87d", null ],
- [ "yLogFatal", "logger_8h.html#a89062c0e6f5d9d0dd34553259c0fe00e", null ],
- [ "yLogger", "logger_8h.html#a9055939896a9ae18d3a833c5023e98d1", null ],
- [ "yLogInfo", "logger_8h.html#a17afd33b46d111ec5e97f20e2c667e2d", null ],
- [ "yLogWarning", "logger_8h.html#ac26448787b9e07f1cf6e928e23ef9b7a", null ]
-]; \ No newline at end of file
diff --git a/logger_8h_source.html b/logger_8h_source.html
index d3a23ecf..c7636d64 100644
--- a/logger_8h_source.html
+++ b/logger_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logger_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logger_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">logger.h</div> </div>
@@ -132,8 +116,8 @@ $(document).ready(function(){initNavTree('logger_8h_source.html','');});
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64">Logger</a>(<a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> min_level);</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64">Logger</a>(<a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> min_level, <span class="keyword">const</span> std::string &amp;file_path);</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> <a class="code" href="classyage_1_1Logger.html#a3c7d6d1a9ccf0397dc81350cef6782f2">operator()</a>(<a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> level = <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">LogLevel::INFO</a>, <span class="keyword">const</span> std::string &amp;fileName = <span class="stringliteral">&quot;&quot;</span>,</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">int</span> lineNum = -1);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> <a class="code" href="classyage_1_1Logger.html#a3c7d6d1a9ccf0397dc81350cef6782f2">operator()</a>(<a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> level = <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">LogLevel::INFO</a>,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">const</span> std::string &amp;fileName = <span class="stringliteral">&quot;&quot;</span>, <span class="keywordtype">int</span> lineNum = -1);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Logger.html#afe5dc1d30d3fd2599a119455672d6e00">flush</a>(<span class="keyword">const</span> <a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> *msg);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd">add</a>(<span class="keyword">const</span> <a class="code" href="classyage_1_1LogSink.html">LogSink</a> &amp;sink);</div>
@@ -158,43 +142,40 @@ $(document).ready(function(){initNavTree('logger_8h_source.html','');});
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="logger_8h.html#a0061fe08a4e2d9ed843a782044d3528f"> 55</a></span>&#160;<span class="preprocessor">#define yLogDebug \</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::DEBUG, __FILE__, __LINE__))</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="logger_8h.html#a17afd33b46d111ec5e97f20e2c667e2d"> 58</a></span>&#160;<span class="preprocessor">#define yLogInfo (yage::Logger::instance()(yage::LogLevel::INFO, __FILE__, __LINE__))</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="logger_8h.html#ac26448787b9e07f1cf6e928e23ef9b7a"> 60</a></span>&#160;<span class="preprocessor">#define yLogWarning \</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::WARNING, __FILE__, __LINE__))</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="logger_8h.html#ac71f194a096b3d7b4cf4ec448ee8b87d"> 63</a></span>&#160;<span class="preprocessor">#define yLogError \</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::ERROR, __FILE__, __LINE__))</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="logger_8h.html#a89062c0e6f5d9d0dd34553259c0fe00e"> 66</a></span>&#160;<span class="preprocessor">#define yLogFatal \</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::FATAL, __FILE__, __LINE__))</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="logger_8h.html#a17afd33b46d111ec5e97f20e2c667e2d"> 58</a></span>&#160;<span class="preprocessor">#define yLogInfo \</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::INFO, __FILE__, __LINE__))</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="logger_8h.html#ac26448787b9e07f1cf6e928e23ef9b7a"> 61</a></span>&#160;<span class="preprocessor">#define yLogWarning \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::WARNING, __FILE__, __LINE__))</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="logger_8h.html#ac71f194a096b3d7b4cf4ec448ee8b87d"> 64</a></span>&#160;<span class="preprocessor">#define yLogError \</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::ERROR, __FILE__, __LINE__))</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="logger_8h.html#a89062c0e6f5d9d0dd34553259c0fe00e"> 67</a></span>&#160;<span class="preprocessor">#define yLogFatal \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> (yage::Logger::instance()(yage::LogLevel::FATAL, __FILE__, __LINE__))</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classyage_1_1Logger_html_a950c0c75b86bf330cf11a0ad29bd9a64"><div class="ttname"><a href="classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64">yage::Logger::Logger</a></div><div class="ttdeci">Logger()</div><div class="ttdef"><b>Definition:</b> logger.cpp:22</div></div>
<div class="ttc" id="classyage_1_1LogMessage_html"><div class="ttname"><a href="classyage_1_1LogMessage.html">yage::LogMessage</a></div><div class="ttdef"><b>Definition:</b> logmessage.h:23</div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdef"><b>Definition:</b> loglevel.h:14</div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdoc">Different log levels that can be assigned to each message sent to the Logger. </div><div class="ttdef"><b>Definition:</b> loglevel.h:20</div></div>
<div class="ttc" id="classyage_1_1Logger_html_a2ce5eb7eb1b108e38c1b90655999a8eb"><div class="ttname"><a href="classyage_1_1Logger.html#a2ce5eb7eb1b108e38c1b90655999a8eb">yage::Logger::setLevel</a></div><div class="ttdeci">void setLevel(LogLevel min_level)</div><div class="ttdef"><b>Definition:</b> logger.cpp:95</div></div>
<div class="ttc" id="classyage_1_1Logger_html_a036fcbfcb9d3428931ec5a11237501a8"><div class="ttname"><a href="classyage_1_1Logger.html#a036fcbfcb9d3428931ec5a11237501a8">yage::Logger::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> logger.cpp:83</div></div>
<div class="ttc" id="classyage_1_1Logger_html_ad165738c5b738d80a14b0ee1319cae2e"><div class="ttname"><a href="classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e">yage::Logger::instance</a></div><div class="ttdeci">static Logger &amp; instance()</div><div class="ttdef"><b>Definition:</b> logger.cpp:88</div></div>
<div class="ttc" id="classyage_1_1Logger_html_a3c7d6d1a9ccf0397dc81350cef6782f2"><div class="ttname"><a href="classyage_1_1Logger.html#a3c7d6d1a9ccf0397dc81350cef6782f2">yage::Logger::operator()</a></div><div class="ttdeci">LogMessage operator()(LogLevel level=LogLevel::INFO, const std::string &amp;fileName=&quot;&quot;, int lineNum=-1)</div><div class="ttdef"><b>Definition:</b> logger.cpp:47</div></div>
<div class="ttc" id="logmessage_8h_html"><div class="ttname"><a href="logmessage_8h.html">logmessage.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="loglevel_8h_html"><div class="ttname"><a href="loglevel_8h.html">loglevel.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="classyage_1_1Logger_html"><div class="ttname"><a href="classyage_1_1Logger.html">yage::Logger</a></div><div class="ttdoc">Logger</div><div class="ttdef"><b>Definition:</b> logger.h:24</div></div>
+<div class="ttc" id="classyage_1_1Logger_html"><div class="ttname"><a href="classyage_1_1Logger.html">yage::Logger</a></div><div class="ttdef"><b>Definition:</b> logger.h:24</div></div>
<div class="ttc" id="classyage_1_1Logger_html_afe5dc1d30d3fd2599a119455672d6e00"><div class="ttname"><a href="classyage_1_1Logger.html#afe5dc1d30d3fd2599a119455672d6e00">yage::Logger::flush</a></div><div class="ttdeci">void flush(const LogMessage *msg)</div><div class="ttdef"><b>Definition:</b> logger.cpp:53</div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">yage::LogLevel::INFO</a></div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">yage::LogLevel::INFO</a></div><div class="ttdoc">Information message. </div></div>
<div class="ttc" id="logsink_8h_html"><div class="ttname"><a href="logsink_8h.html">logsink.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="classyage_1_1Logger_html_a5ec9a752e8cbb278342fdb49520fbcdd"><div class="ttname"><a href="classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd">yage::Logger::add</a></div><div class="ttdeci">void add(const LogSink &amp;sink)</div><div class="ttdef"><b>Definition:</b> logger.cpp:69</div></div>
<div class="ttc" id="classyage_1_1LogSink_html"><div class="ttname"><a href="classyage_1_1LogSink.html">yage::LogSink</a></div><div class="ttdef"><b>Definition:</b> logsink.h:23</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logger_8h.html">logger.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logger_8dox.html b/logger_8md.html
index bb189d36..d7a9df51 100644
--- a/logger_8dox.html
+++ b/logger_8md.html
@@ -4,17 +4,10 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
-<title>YAGE: docs/logger.dox File Reference</title>
+<title>YAGE: docs/logger.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logger_8dox.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,21 +82,18 @@ $(document).ready(function(){initNavTree('logger_8dox.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">docs/logger.dox File Reference</div> </div>
+<div class="title">docs/logger.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="logger_8dox.html">logger.dox</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logger_guide.html b/logger_guide.html
new file mode 100644
index 00000000..578342b3
--- /dev/null
+++ b/logger_guide.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Logger</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Logger </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Aynchronous logging is built into the YAGE library, which can be used to log events in the game and also debug the game by using the debug output that the game engine produces. This can help if for example, a texture is being loaded.</p>
+<h2>Log levels </h2>
+<p>The logger has five different levels that can be assigned to a message. These are, from lowest to highest severity, DEBUG, INFO, WARNING, ERROR and FATAL, which are of type <a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a>. Messages that the developer then wants to write to the logs can take any of these severities and the developer can then decide what the minimum severity is that the logger should log. By default, the logger will log anything that is above <a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">yage::LogLevel::INFO</a>.</p>
+<h2>Using the Logger in your Game </h2>
+<p>There are a few preprocessor definitions to make the use of the logger as simple as possible. First of all, there is a definition to get the instance of the current global logger, which can then be used to set a different minimum display level. This definition is <code>yLogger</code>, and an example of how to use it to change the default output level can be seen below</p>
+<p>``` c++ yLogger.setLevel(yage::LogLevel::ERROR); ```</p>
+<p>The above code changes the global logger so that it will only output things that are an error or fatal and make the engine crash.</p>
+<p>Other preprocessor definitions are <code>yLogDebug</code>, <code>yLogInfo</code>, <code>yLogWarning</code>, <code>yLogError</code> and <code>yLogFatal</code>. These return an object that is similar to a buffer, but belongs to the main global logger <code>yLogger</code>. These are the definitions that should be used to print somehting to the main logger. For example</p>
+<p>``` c++ yLogWarning &lt;&lt; "This is a warning"; ```</p>
+<p>will print the message "This is a warning" with the severity of <code>LogLevel::WARNING</code>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/loglevel_8h.html b/loglevel_8h.html
index cf46f069..0a20af3d 100644
--- a/loglevel_8h.html
+++ b/loglevel_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('loglevel_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('loglevel_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -121,7 +105,7 @@ $(document).ready(function(){initNavTree('loglevel_8h.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
@@ -135,6 +119,7 @@ Enumerations</h2></td></tr>
&#160;&#160;<a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">yage::LogLevel::FATAL</a>
<br/>
}</td></tr>
+<tr class="memdesc:a4ac616fa26af17775ed558a4c08e4788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Different log levels that can be assigned to each message sent to the Logger. <a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">More...</a><br/></td></tr>
<tr class="separator:a4ac616fa26af17775ed558a4c08e4788"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -142,15 +127,11 @@ Enumerations</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="loglevel_8h.html">loglevel.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/loglevel_8h.js b/loglevel_8h.js
deleted file mode 100644
index 7f6cab17..00000000
--- a/loglevel_8h.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var loglevel_8h =
-[
- [ "LogLevel", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788", [
- [ "DEBUG", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15", null ],
- [ "INFO", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3", null ],
- [ "WARNING", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b", null ],
- [ "ERROR", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5", null ],
- [ "FATAL", "loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc", null ]
- ] ]
-]; \ No newline at end of file
diff --git a/loglevel_8h_source.html b/loglevel_8h_source.html
index f2d713bc..0b3eb6d3 100644
--- a/loglevel_8h_source.html
+++ b/loglevel_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('loglevel_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('loglevel_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">loglevel.h</div> </div>
@@ -112,35 +96,35 @@ $(document).ready(function(){initNavTree('loglevel_8h_source.html','');});
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_CORE_LOGLEVEL_H</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_CORE_LOGLEVEL_H</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>yage {</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
-<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788"> 14</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> {</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15">DEBUG</a>,</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">INFO</a>,</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">WARNING</a>,</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5">ERROR</a>,</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">FATAL</a>,</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">yage::LogLevel::WARNING</a></div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">yage::LogLevel::FATAL</a></div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdef"><b>Definition:</b> loglevel.h:14</div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15">yage::LogLevel::DEBUG</a></div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5">yage::LogLevel::ERROR</a></div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">yage::LogLevel::INFO</a></div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788"> 20</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15">DEBUG</a>,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">INFO</a>,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">WARNING</a>,</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5">ERROR</a>,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">FATAL</a>,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b">yage::LogLevel::WARNING</a></div><div class="ttdoc">Warning message. </div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">yage::LogLevel::FATAL</a></div><div class="ttdoc">Fatal message that should be output when the game crashes. </div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdoc">Different log levels that can be assigned to each message sent to the Logger. </div><div class="ttdef"><b>Definition:</b> loglevel.h:20</div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15">yage::LogLevel::DEBUG</a></div><div class="ttdoc">Lowest log level. This is used by the game engine to output debugging information but is turned off i...</div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5">yage::LogLevel::ERROR</a></div><div class="ttdoc">Error message. </div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3">yage::LogLevel::INFO</a></div><div class="ttdoc">Information message. </div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="loglevel_8h.html">loglevel.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logmessage_8cpp.html b/logmessage_8cpp.html
index e162c0ed..3ad1d61c 100644
--- a/logmessage_8cpp.html
+++ b/logmessage_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logmessage_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logmessage_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -121,7 +105,7 @@ $(document).ready(function(){initNavTree('logmessage_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -129,15 +113,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logmessage_8cpp.html">logmessage.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logmessage_8h.html b/logmessage_8h.html
index d0fbc96a..0e4f37c1 100644
--- a/logmessage_8h.html
+++ b/logmessage_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logmessage_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logmessage_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -132,7 +116,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -140,15 +124,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logmessage_8h.html">logmessage.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logmessage_8h_source.html b/logmessage_8h_source.html
index 6d47103c..2e69bed0 100644
--- a/logmessage_8h_source.html
+++ b/logmessage_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logmessage_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logmessage_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">logmessage.h</div> </div>
@@ -151,28 +135,29 @@ $(document).ready(function(){initNavTree('logmessage_8h_source.html','');});
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classyage_1_1Logger.html">Logger</a> *owner_;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="structyage_1_1LogMessage_1_1Meta.html">Meta</a> meta_;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be">LogMessage</a>(<a class="code" href="classyage_1_1Logger.html">Logger</a> *owner, <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> level, <span class="keyword">const</span> std::string &amp;file_name, <span class="keywordtype">int</span> line_num);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be">LogMessage</a>(<a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> &amp;&amp;msg);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">/* -----------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> * Template definitions</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> * -----------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90"> 61</a></span>&#160;<a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> &amp;<a class="code" href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90">LogMessage::operator&lt;&lt;</a>(<span class="keyword">const</span> T &amp;value)</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; buffer_ &lt;&lt; value;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;} <span class="comment">// namespace yage</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be">LogMessage</a>(<a class="code" href="classyage_1_1Logger.html">Logger</a> *owner, <a class="code" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">LogLevel</a> level, <span class="keyword">const</span> std::string &amp;file_name,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">int</span> line_num);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be">LogMessage</a>(<a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> &amp;&amp;msg);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">/* -----------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> * Template definitions</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> * -----------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90"> 62</a></span>&#160;<a class="code" href="classyage_1_1LogMessage.html">LogMessage</a> &amp;<a class="code" href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90">LogMessage::operator&lt;&lt;</a>(<span class="keyword">const</span> T &amp;value)</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; buffer_ &lt;&lt; value;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classyage_1_1LogMessage_html"><div class="ttname"><a href="classyage_1_1LogMessage.html">yage::LogMessage</a></div><div class="ttdef"><b>Definition:</b> logmessage.h:23</div></div>
-<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdef"><b>Definition:</b> loglevel.h:14</div></div>
-<div class="ttc" id="classyage_1_1LogMessage_html_af79ecd529e839a5a3e99077dde60df90"><div class="ttname"><a href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90">yage::LogMessage::operator&lt;&lt;</a></div><div class="ttdeci">LogMessage &amp; operator&lt;&lt;(const T &amp;value)</div><div class="ttdef"><b>Definition:</b> logmessage.h:61</div></div>
+<div class="ttc" id="namespaceyage_html_a4ac616fa26af17775ed558a4c08e4788"><div class="ttname"><a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">yage::LogLevel</a></div><div class="ttdeci">LogLevel</div><div class="ttdoc">Different log levels that can be assigned to each message sent to the Logger. </div><div class="ttdef"><b>Definition:</b> loglevel.h:20</div></div>
+<div class="ttc" id="classyage_1_1LogMessage_html_af79ecd529e839a5a3e99077dde60df90"><div class="ttname"><a href="classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90">yage::LogMessage::operator&lt;&lt;</a></div><div class="ttdeci">LogMessage &amp; operator&lt;&lt;(const T &amp;value)</div><div class="ttdef"><b>Definition:</b> logmessage.h:62</div></div>
<div class="ttc" id="classyage_1_1LogMessage_html_af82ed7ceef5cfdac54ad2e176deb9fca"><div class="ttname"><a href="classyage_1_1LogMessage.html#af82ed7ceef5cfdac54ad2e176deb9fca">yage::LogMessage::~LogMessage</a></div><div class="ttdeci">~LogMessage()</div></div>
<div class="ttc" id="structyage_1_1LogMessage_1_1Meta_html_ae3ef1b01f47ef6254b8aa6fce13db7c4"><div class="ttname"><a href="structyage_1_1LogMessage_1_1Meta.html#ae3ef1b01f47ef6254b8aa6fce13db7c4">yage::LogMessage::Meta::fileName</a></div><div class="ttdeci">std::string fileName</div><div class="ttdef"><b>Definition:</b> logmessage.h:40</div></div>
<div class="ttc" id="classyage_1_1LogMessage_html_af4ab2630201ecd155c329fbfebe352be"><div class="ttname"><a href="classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be">yage::LogMessage::LogMessage</a></div><div class="ttdeci">LogMessage(const LogMessage &amp;msg)=delete</div></div>
@@ -180,19 +165,15 @@ $(document).ready(function(){initNavTree('logmessage_8h_source.html','');});
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3">yage::key::T</a></div></div>
<div class="ttc" id="structyage_1_1LogMessage_1_1Meta_html_aa265c76e7ce54e4b912e1c41333fad3b"><div class="ttname"><a href="structyage_1_1LogMessage_1_1Meta.html#aa265c76e7ce54e4b912e1c41333fad3b">yage::LogMessage::Meta::level</a></div><div class="ttdeci">LogLevel level</div><div class="ttdef"><b>Definition:</b> logmessage.h:39</div></div>
<div class="ttc" id="loglevel_8h_html"><div class="ttname"><a href="loglevel_8h.html">loglevel.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="classyage_1_1Logger_html"><div class="ttname"><a href="classyage_1_1Logger.html">yage::Logger</a></div><div class="ttdoc">Logger</div><div class="ttdef"><b>Definition:</b> logger.h:24</div></div>
+<div class="ttc" id="classyage_1_1Logger_html"><div class="ttname"><a href="classyage_1_1Logger.html">yage::Logger</a></div><div class="ttdef"><b>Definition:</b> logger.h:24</div></div>
<div class="ttc" id="classyage_1_1LogMessage_html_a31eb7ca394acbcfedca104e709f1c4ae"><div class="ttname"><a href="classyage_1_1LogMessage.html#a31eb7ca394acbcfedca104e709f1c4ae">yage::LogMessage::operator=</a></div><div class="ttdeci">LogMessage &amp; operator=(const LogMessage &amp;msg)=delete</div></div>
<div class="ttc" id="structyage_1_1LogMessage_1_1Meta_html"><div class="ttname"><a href="structyage_1_1LogMessage_1_1Meta.html">yage::LogMessage::Meta</a></div><div class="ttdef"><b>Definition:</b> logmessage.h:38</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logmessage_8h.html">logmessage.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logsink_8cpp.html b/logsink_8cpp.html
index ec64b5d0..f181445d 100644
--- a/logsink_8cpp.html
+++ b/logsink_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logsink_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logsink_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -125,7 +109,7 @@ $(document).ready(function(){initNavTree('logsink_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@@ -155,15 +139,11 @@ Functions</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logsink_8cpp.html">logsink.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logsink_8cpp.js b/logsink_8cpp.js
deleted file mode 100644
index e101cbd1..00000000
--- a/logsink_8cpp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var logsink_8cpp =
-[
- [ "makeConsoleSink", "logsink_8cpp.html#ab54350a8dbf59338c99ab4f43cfa2858", null ],
- [ "makeFileSink", "logsink_8cpp.html#ad537beeea51c8314e407fadd24affc34", null ],
- [ "makeFileSink", "logsink_8cpp.html#a6b288197f6a97f197dda60e5b54f1841", null ],
- [ "fileHandle_", "logsink_8cpp.html#ae3c7a5bad8dd0db0a0a9cdd60c7b53d1", null ]
-]; \ No newline at end of file
diff --git a/logsink_8h.html b/logsink_8h.html
index 0afcf248..02a395b2 100644
--- a/logsink_8h.html
+++ b/logsink_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logsink_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logsink_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -130,7 +114,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@@ -147,15 +131,11 @@ Functions</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logsink_8h.html">logsink.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/logsink_8h.js b/logsink_8h.js
deleted file mode 100644
index a15a0e4d..00000000
--- a/logsink_8h.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var logsink_8h =
-[
- [ "LogSink", "classyage_1_1LogSink.html", "classyage_1_1LogSink" ],
- [ "makeConsoleSink", "logsink_8h.html#ab54350a8dbf59338c99ab4f43cfa2858", null ],
- [ "makeFileSink", "logsink_8h.html#ad537beeea51c8314e407fadd24affc34", null ],
- [ "makeFileSink", "logsink_8h.html#a6b288197f6a97f197dda60e5b54f1841", null ]
-]; \ No newline at end of file
diff --git a/logsink_8h_source.html b/logsink_8h_source.html
index c33204e0..7cb2b1d9 100644
--- a/logsink_8h_source.html
+++ b/logsink_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('logsink_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('logsink_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">logsink.h</div> </div>
@@ -205,15 +189,11 @@ $(document).ready(function(){initNavTree('logsink_8h_source.html','');});
<div class="ttc" id="classyage_1_1LogSink_html_abe2e73398ecb925233b50be5d15e20f9"><div class="ttname"><a href="classyage_1_1LogSink.html#abe2e73398ecb925233b50be5d15e20f9">yage::LogSink::operator==</a></div><div class="ttdeci">bool operator==(const LogSink &amp;sink)</div><div class="ttdef"><b>Definition:</b> logsink.cpp:36</div></div>
<div class="ttc" id="classyage_1_1LogSink_html"><div class="ttname"><a href="classyage_1_1LogSink.html">yage::LogSink</a></div><div class="ttdef"><b>Definition:</b> logsink.h:23</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="logsink_8h.html">logsink.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/matrix_8dox.html b/main_8md.html
index 822bd2f8..12ed0506 100644
--- a/matrix_8dox.html
+++ b/main_8md.html
@@ -4,17 +4,10 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
-<title>YAGE: docs/matrix.dox File Reference</title>
+<title>YAGE: docs/main.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('matrix_8dox.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,21 +82,18 @@ $(document).ready(function(){initNavTree('matrix_8dox.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">docs/matrix.dox File Reference</div> </div>
+<div class="title">docs/main.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="matrix_8dox.html">matrix.dox</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/matrix_8h.html b/matrix_8h.html
index 569da623..da8c2dcd 100644
--- a/matrix_8h.html
+++ b/matrix_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('matrix_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('matrix_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -151,7 +135,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceyage_1_1details"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage_1_1details.html">yage::details</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -236,15 +220,11 @@ Functions</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li><li class="navelem"><a class="el" href="matrix_8h.html">matrix.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/matrix_8h.js b/matrix_8h.js
deleted file mode 100644
index ac0bfcd0..00000000
--- a/matrix_8h.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var matrix_8h =
-[
- [ "Matrix", "classyage_1_1Matrix.html", "classyage_1_1Matrix" ],
- [ "Row", "classyage_1_1details_1_1Row.html", "classyage_1_1details_1_1Row" ],
- [ "Matrix", "classyage_1_1Matrix.html", "classyage_1_1Matrix" ],
- [ "Vector", "classyage_1_1Vector.html", "classyage_1_1Vector" ],
- [ "Vector2", "classyage_1_1Vector2.html", "classyage_1_1Vector2" ],
- [ "Vector3", "classyage_1_1Vector3.html", "classyage_1_1Vector3" ],
- [ "Vector4", "classyage_1_1Vector4.html", "classyage_1_1Vector4" ],
- [ "Vector2d", "matrix_8h.html#a23eef341099a6b2816cf0c63f8ffe898", null ],
- [ "Vector2f", "matrix_8h.html#aea25e39fde2b6a8abab71cc27371d339", null ],
- [ "Vector2i", "matrix_8h.html#a57e09b8310398c434e9526ea5cc456ad", null ],
- [ "Vector3d", "matrix_8h.html#a12811c7f985dbbdc34e4d93a26d21763", null ],
- [ "Vector3f", "matrix_8h.html#ae04792ab12e05bcb11c0316b142ebeec", null ],
- [ "Vector3i", "matrix_8h.html#a747a31edd11312cbae25ebb9ab12d5cb", null ],
- [ "Vector4d", "matrix_8h.html#a438e5eeb3daf58452259f7534e8818e8", null ],
- [ "Vector4f", "matrix_8h.html#a1896ae5c4cfed1453dadf21a4a2a48cf", null ],
- [ "Vector4i", "matrix_8h.html#a6455fea9bfa32e435fbf77e02ce12759", null ],
- [ "dot", "matrix_8h.html#ac4d2f55a5c3369ec42001776a582c30a", null ],
- [ "multiply", "matrix_8h.html#a277125ad9fa06a7119c59d350e129985", null ],
- [ "operator*", "matrix_8h.html#ad8903f6a93ac89f16846458540717507", null ],
- [ "operator*", "matrix_8h.html#a090cbd6b767b583364e9cbe78d8a8d5a", null ],
- [ "operator+", "matrix_8h.html#a226cc29763f745fd175844f4263d5dae", null ],
- [ "operator+", "matrix_8h.html#a6b77afaa1cd077df90b9daccbfc2cbae", null ],
- [ "operator+", "matrix_8h.html#a947133b8fc764d9fc5c5d8b08821cf32", null ],
- [ "operator-", "matrix_8h.html#a2187fb11298a029f2877702192717090", null ],
- [ "operator-", "matrix_8h.html#a8a9db24697f649f6d19f0347330d95fe", null ],
- [ "operator-", "matrix_8h.html#ad9344d41af72f29cd6f8cf1ef62ed3cc", null ],
- [ "operator/", "matrix_8h.html#acca4a23afb94173695bbc1e1f2cde2b3", null ],
- [ "operator<<", "matrix_8h.html#a7ed614bc9d3e8b9f3f8d32b6a7ff28eb", null ],
- [ "operator==", "matrix_8h.html#a5ddd829cb1c7c4c880d0fd53326858fe", null ],
- [ "transpose", "matrix_8h.html#a62de4b4b6bab23717d957c370f2e41c7", null ]
-]; \ No newline at end of file
diff --git a/matrix_8h_source.html b/matrix_8h_source.html
index dd999738..6c2331f0 100644
--- a/matrix_8h_source.html
+++ b/matrix_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('matrix_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('matrix_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">matrix.h</div> </div>
@@ -550,15 +534,11 @@ $(document).ready(function(){initNavTree('matrix_8h_source.html','');});
<div class="ttc" id="classyage_1_1Matrix_html_a83d77d3a40ced5e2b703a6d66b6e6055"><div class="ttname"><a href="classyage_1_1Matrix.html#a83d77d3a40ced5e2b703a6d66b6e6055">yage::Matrix::begin</a></div><div class="ttdeci">std::vector&lt; Type &gt;::iterator begin()</div><div class="ttdoc">Iterator support for the start. </div><div class="ttdef"><b>Definition:</b> matrix.h:128</div></div>
<div class="ttc" id="classyage_1_1Vector3_html_a163c42efd0a4f365abb612c031859820"><div class="ttname"><a href="classyage_1_1Vector3.html#a163c42efd0a4f365abb612c031859820">yage::Vector3::z</a></div><div class="ttdeci">Type &amp; z</div><div class="ttdef"><b>Definition:</b> matrix.h:356</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_aa7f86daaaa64c448f636c0e65de2cec.html">math</a></li><li class="navelem"><a class="el" href="matrix_8h.html">matrix.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/todolist_8dox.html b/matrix_8md.html
index ad188793..e815a5da 100644
--- a/todolist_8dox.html
+++ b/matrix_8md.html
@@ -4,17 +4,10 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
-<title>YAGE: docs/todolist.dox File Reference</title>
+<title>YAGE: docs/matrix.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('todolist_8dox.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,21 +82,18 @@ $(document).ready(function(){initNavTree('todolist_8dox.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">docs/todolist.dox File Reference</div> </div>
+<div class="title">docs/matrix.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="todolist_8dox.html">todolist.dox</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/matrix_guide.html b/matrix_guide.html
new file mode 100644
index 00000000..11db9ed0
--- /dev/null
+++ b/matrix_guide.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Matrix Guide</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Matrix Guide </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The matrix class is a templated class which implements a mathematical Matrix.</p>
+<h2>Usage Guide </h2>
+<p>The class can be instantiated</p>
+<h2>Example Code </h2>
+<p>Creating a Matrix and performing operations on it.</p>
+<p>``` c++ #include &lt;YAGE/Math/matrix.hpp&gt;</p>
+<p>int main(int, char **) { yage::Matrix&lt;2, 2, int&gt; mat1 {{1, 2, 3, 4}}; yage::Matrix&lt;2, 2, int&gt; mat2 {{5, 6, 7, 8}};</p>
+<p>int dot = yage::math::dot(mat1, mat2); return 0; } ``` </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/md_README.html b/md_README.html
new file mode 100644
index 00000000..1e743a0a
--- /dev/null
+++ b/md_README.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: YAGE</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">YAGE </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><div class="image">
+<img src="https://travis-ci.org/ymherklotz/YAGE.svg?branch=master" alt="master-build"/>
+</div>
+<h2>Introduction </h2>
+<p>YAGE stands for Yet Another Game Engine. It is a game engine that is being developed for a game called <a href="https://github.com/ymherklotz/Arider">Arider</a>. It uses OpenGL and GLFW for the window creation and management and graphics. It is also going to be a general game engine for use with other games in the similar style.</p>
+<p>The inspiration for this game engine is to learn about OpenGL and create an optimised 2D game engine with a simple API that can be used to easily create simple 2D games.</p>
+<p>The full documentation can be seen <a href="https://www.yannherklotz.com/YAGE">here</a>.</p>
+<h2>Installation and usage </h2>
+<p>To use YAGE for your own game, you should link it as a static library and include the <a href="/include/YAGE/yage.h">yage.h</a> header in your project. To link the project using cmake, the library has to be added as a subdirectory and then linked with the name <code>yage</code>.</p>
+<h2>Build and Testing </h2>
+<p>To compile YAGE, create a build directory from the base dirqectory. Then call cmake and point it to the directory containing. <a href="/CMakeLists.txt">CMakeLists.txt</a>. For example, one can use the following commands</p>
+<p>``` shell mkdir -p build cd build cmake .. ```</p>
+<p>The test suite can then be run using</p>
+<p>``` shell cd build/tests &amp;&amp; ctest ```</p>
+<h2>License </h2>
+<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> &ndash; MIT License, see file <a href="/LICENSE">LICENSE</a> for more details. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/md_docs_todolist.html b/md_docs_todolist.html
new file mode 100644
index 00000000..761c9301
--- /dev/null
+++ b/md_docs_todolist.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Add Comments</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Add Comments </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h2>Reason </h2>
+<p>Currently there are no comments in the code. They should be added so that in the future the code can be edited easily and improved without having to know the exact implementation of every function.</p>
+<h2>Requirements </h2>
+<ul>
+<li>It should follow the doxygen API so that documentation can easily be generated.</li>
+</ul>
+<h1>Switch GPU API </h1>
+<h2>Reason </h2>
+<p>Vulkan is much more straight forward and it should be easier to understand OpenGL from it. I also the newest API that will be used in the newest games and is supported by quite a few graphics cards.</p>
+<h2>Requirements </h2>
+<ul>
+<li>yage shouldn't depend on GL anymore and exclusively use Vulkan libraries.</li>
+</ul>
+<h2>Afterthought </h2>
+<p>In the end the library will first focus on modern OpenGL, as it is much more concise and easier to implement initially. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/md_yage_physics_README.html b/md_yage_physics_README.html
index 9911b72c..6417c87a 100644
--- a/md_yage_physics_README.html
+++ b/md_yage_physics_README.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('md_yage_physics_README.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,6 +76,7 @@ $(document).ready(function(){initNavTree('md_yage_physics_README.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Physics Engine </div> </div>
@@ -107,14 +87,11 @@ $(document).ready(function(){initNavTree('md_yage_physics_README.html','');});
<p>I have ``` a = dv / dt; v = dp / dt; ```</p>
<p>I am going to use the second order runga kutta method with a = 0, b = 1, alpha = 1 / 2 and beta = 1 / 2. </p>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespacemembers.html b/namespacemembers.html
index 53e2112c..07615d4c 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -114,20 +108,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespacemembers.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -318,7 +298,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822adfcf28d0734569a6a693bc8194de62bf">yage</a>
</li>
<li>glfwErrorCallback()
-: <a class="el" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">yage</a>
+: <a class="el" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">yage</a>
</li>
<li>GRAVE_ACCENT
: <a class="el" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822a1547ad05c44be2cc614be32159bf666b">yage</a>
@@ -722,14 +702,11 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html
index b499c027..c7c44b34 100644
--- a/namespacemembers_enum.html
+++ b/namespacemembers_enum.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -84,20 +78,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -125,14 +105,11 @@ $(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespacemembers_eval.html b/namespacemembers_eval.html
index f508b45c..e765e995 100644
--- a/namespacemembers_eval.html
+++ b/namespacemembers_eval.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -114,20 +108,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -641,14 +621,11 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
index 1bfe6a8f..4cc8e7d7 100644
--- a/namespacemembers_func.html
+++ b/namespacemembers_func.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -84,20 +78,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespacemembers_func.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -118,7 +98,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="namespaceyage_1_1matrix.html#ac4d2f55a5c3369ec42001776a582c30a">yage::matrix</a>
</li>
<li>glfwErrorCallback()
-: <a class="el" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">yage</a>
+: <a class="el" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">yage</a>
</li>
<li>init()
: <a class="el" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">yage</a>
@@ -158,14 +138,11 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespacemembers_type.html b/namespacemembers_type.html
index 17c3c330..a38ac127 100644
--- a/namespacemembers_type.html
+++ b/namespacemembers_type.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -84,20 +78,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespacemembers_type.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -146,14 +126,11 @@ $(document).ready(function(){initNavTree('namespacemembers_type.html','');});
</li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespaces.html b/namespaces.html
index 97183373..b59c2150 100644
--- a/namespaces.html
+++ b/namespaces.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -75,20 +69,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespaces.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -110,20 +90,17 @@ $(document).ready(function(){initNavTree('namespaces.html','');});
<div class="contents">
<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage.html" target="_self">yage</a></td><td class="desc">Project namespace </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage.html" target="_self">yage</a></td><td class="desc">Core includes </td></tr>
<tr id="row_0_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage_1_1details.html" target="_self">details</a></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceyage_1_1matrix.html" target="_self">matrix</a></td><td class="desc">Namespace containing functions that operate on matrices </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespaces.js b/namespaces.js
deleted file mode 100644
index 10ccff04..00000000
--- a/namespaces.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var namespaces =
-[
- [ "yage", "namespaceyage.html", "namespaceyage" ]
-]; \ No newline at end of file
diff --git a/namespaceyage.html b/namespaceyage.html
index c7c94fb1..b71bb9c9 100644
--- a/namespaceyage.html
+++ b/namespaceyage.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespaceyage.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,7 @@ $(document).ready(function(){initNavTree('namespaceyage.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -115,7 +95,7 @@ $(document).ready(function(){initNavTree('namespaceyage.html','');});
</div><!--header-->
<div class="contents">
-<p>Project namespace.
+<p>Core includes.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
@@ -135,8 +115,6 @@ Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1IoManager.html">IoManager</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Logger.html">Logger</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h2><a class="el" href="classyage_1_1Logger.html" title="Logger">Logger</a></h2>
- <a href="classyage_1_1Logger.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -160,6 +138,21 @@ Classes</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyage_1_1Vertex.html">Vertex</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Engine.html">Engine</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main engine class that contains a systems, the main loop and the update function that updates all the systems. <a href="classyage_1_1Engine.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Entity.html">Entity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> convenience class. <a href="classyage_1_1Entity.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1EntityManager.html">EntityManager</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages entities in a space. <a href="classyage_1_1EntityManager.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Space.html">Space</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them. <a href="classyage_1_1Space.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1System.html">System</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine. <a href="classyage_1_1System.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Matrix.html">Matrix</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base <a class="el" href="classyage_1_1Matrix.html" title="Base Matrix class used by other similar classes. ">Matrix</a> class used by other similar classes. <a href="classyage_1_1Matrix.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -241,6 +234,7 @@ Enumerations</h2></td></tr>
&#160;&#160;<a class="el" href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc">LogLevel::FATAL</a>
<br/>
}</td></tr>
+<tr class="memdesc:a4ac616fa26af17775ed558a4c08e4788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Different log levels that can be assigned to each message sent to the Logger. <a href="namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788">More...</a><br/></td></tr>
<tr class="separator:a4ac616fa26af17775ed558a4c08e4788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09d41deeced5fca5df9dc680c9e77c38"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38">WindowFlags</a> : unsigned { <a class="el" href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38a7c4273d3feb1dc60a55a74c37c3fddd6">SHOWN</a> = 0x1,
<a class="el" href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38af7a4d995b268c416a6e01b8dc1555648">HIDDEN</a> = 0x2,
@@ -446,20 +440,21 @@ Functions</h2></td></tr>
<tr class="memitem:a7ed614bc9d3e8b9f3f8d32b6a7ff28eb"><td class="memTemplParams" colspan="2">template&lt;int M, int N, class T &gt; </td></tr>
<tr class="memitem:a7ed614bc9d3e8b9f3f8d32b6a7ff28eb"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a7ed614bc9d3e8b9f3f8d32b6a7ff28eb">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classyage_1_1Matrix.html">Matrix</a>&lt; M, N, T &gt; &amp;mat)</td></tr>
<tr class="separator:a7ed614bc9d3e8b9f3f8d32b6a7ff28eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">glfwErrorCallback</a> (int, const char *description)</td></tr>
-<tr class="separator:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae53246342d5b0371f300336cbc6595a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">glfwErrorCallback</a> (int, const char *)</td></tr>
+<tr class="separator:ae53246342d5b0371f300336cbc6595a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">init</a> ()</td></tr>
-<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes yage. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
+<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes YAGE. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
<tr class="separator:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9d8c7327204686b3c86f4ab48672618"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">quit</a> ()</td></tr>
-<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup yage. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
+<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup YAGE. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
<tr class="separator:ac9d8c7327204686b3c86f4ab48672618"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Project namespace. </p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>remove the include to make compilation faster </dd></dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>think of removing this, by, for example, using a pointer This could be more efficient when copying the texture out of the spritesheet.</dd></dl>
-<p>Avoids collision as all the classes and global functions are wrapped in. it. </p>
+<div class="textblock"><p>Core includes. </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>remove the include to make compilation faster </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>think of removing this, by, for example, using a pointer This could be more efficient when copying the texture out of the spritesheet.</dd></dl>
+<p>Data structues useful for the game engine and games developed by it Math templated implementation of matrices and operations on them. Physics implementation however, Box2D Rendering implementations for spritebatching and default shapes. <a class="el" href="classyage_1_1Engine.html" title="Main engine class that contains a systems, the main loop and the update function that updates all the...">Engine</a> that includes a <a class="el" href="classyage_1_1Entity.html" title="Entity convenience class. ">Entity</a> <a class="el" href="classComponent.html">Component</a> <a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> to organize the data and make it more flexible and efficient. Project namespace.</p>
+<p>Avoids collision as all the classes and global functions are wrapped in. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a23eef341099a6b2816cf0c63f8ffe898"></a>
<div class="memitem">
@@ -859,16 +854,24 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>Different log levels that can be assigned to each message sent to the <a class="el" href="classyage_1_1Logger.html">Logger</a>. </p>
+<p>The logger then outputs the message if it is above the minimum log level, or does not process it. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15"></a>DEBUG</em>&#160;</td><td class="fielddoc">
+<p>Lowest log level. This is used by the game engine to output debugging information but is turned off in the logger by default. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3"></a>INFO</em>&#160;</td><td class="fielddoc">
+<p>Information message. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b"></a>WARNING</em>&#160;</td><td class="fielddoc">
+<p>Warning message. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5"></a>ERROR</em>&#160;</td><td class="fielddoc">
+<p>Error message. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc"></a>FATAL</em>&#160;</td><td class="fielddoc">
+<p>Fatal message that should be output when the game crashes. </p>
</td></tr>
</table>
@@ -897,7 +900,7 @@ Functions</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a0bd2fedcbe862fdea1ea54b6b7d49bec"></a>
+<a class="anchor" id="ae53246342d5b0371f300336cbc6595a3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -936,9 +939,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Initializes yage. </p>
-<p>This is only there to initialize glfw.</p>
-<dl class="section return"><dt>Returns</dt><dd>Returns true if the initialization was successful. </dd></dl>
+<p>Initializes YAGE. </p>
+<p>This is there to initialize GLFW, which is the current window manager that is used with OpenGL. </p>
</div>
</div>
@@ -1310,21 +1312,17 @@ template&lt;int M, int N, class T &gt; </div>
</table>
</div><div class="memdoc">
-<p>Quit and cleanup yage. </p>
-<p>glfw needs to clean itself up. </p>
+<p>Quit and cleanup YAGE. </p>
+<p>This also cleans up GLFW after it was initialized. </p>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespaceyage.js b/namespaceyage.js
deleted file mode 100644
index 3ef54125..00000000
--- a/namespaceyage.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var namespaceyage =
-[
- [ "details", "namespaceyage_1_1details.html", "namespaceyage_1_1details" ],
- [ "matrix", "namespaceyage_1_1matrix.html", null ],
- [ "Camera", "classyage_1_1Camera.html", "classyage_1_1Camera" ],
- [ "ImageLoader", "classyage_1_1ImageLoader.html", "classyage_1_1ImageLoader" ],
- [ "IoManager", "classyage_1_1IoManager.html", "classyage_1_1IoManager" ],
- [ "Logger", "classyage_1_1Logger.html", "classyage_1_1Logger" ],
- [ "LogMessage", "classyage_1_1LogMessage.html", "classyage_1_1LogMessage" ],
- [ "LogSink", "classyage_1_1LogSink.html", "classyage_1_1LogSink" ],
- [ "ResourceManager", "classyage_1_1ResourceManager.html", "classyage_1_1ResourceManager" ],
- [ "SpriteSheet", "classyage_1_1SpriteSheet.html", "classyage_1_1SpriteSheet" ],
- [ "TextureCache", "classyage_1_1TextureCache.html", "classyage_1_1TextureCache" ],
- [ "Window", "classyage_1_1Window.html", "classyage_1_1Window" ],
- [ "Texture", "structyage_1_1Texture.html", "structyage_1_1Texture" ],
- [ "Position", "structyage_1_1Position.html", "structyage_1_1Position" ],
- [ "Colour", "structyage_1_1Colour.html", "structyage_1_1Colour" ],
- [ "UV", "structyage_1_1UV.html", "structyage_1_1UV" ],
- [ "Vertex", "structyage_1_1Vertex.html", "structyage_1_1Vertex" ],
- [ "Matrix", "classyage_1_1Matrix.html", "classyage_1_1Matrix" ],
- [ "Vector", "classyage_1_1Vector.html", "classyage_1_1Vector" ],
- [ "Vector2", "classyage_1_1Vector2.html", "classyage_1_1Vector2" ],
- [ "Vector3", "classyage_1_1Vector3.html", "classyage_1_1Vector3" ],
- [ "Vector4", "classyage_1_1Vector4.html", "classyage_1_1Vector4" ],
- [ "Body", "classyage_1_1Body.html", "classyage_1_1Body" ],
- [ "Collider", "classyage_1_1Collider.html", "classyage_1_1Collider" ],
- [ "CollisionBody", "classyage_1_1CollisionBody.html", "classyage_1_1CollisionBody" ],
- [ "ParticleBody", "classyage_1_1ParticleBody.html", "classyage_1_1ParticleBody" ],
- [ "RectangleCollider", "classyage_1_1RectangleCollider.html", "classyage_1_1RectangleCollider" ],
- [ "RigidBody", "classyage_1_1RigidBody.html", "classyage_1_1RigidBody" ],
- [ "Batch", "classyage_1_1Batch.html", "classyage_1_1Batch" ],
- [ "Drawable", "classyage_1_1Drawable.html", "classyage_1_1Drawable" ],
- [ "Rectangle", "classyage_1_1Rectangle.html", "classyage_1_1Rectangle" ],
- [ "Shader", "classyage_1_1Shader.html", "classyage_1_1Shader" ],
- [ "Shape", "classyage_1_1Shape.html", "classyage_1_1Shape" ],
- [ "Sprite", "classyage_1_1Sprite.html", "classyage_1_1Sprite" ],
- [ "SpriteBatch", "classyage_1_1SpriteBatch.html", "classyage_1_1SpriteBatch" ],
- [ "Active", "classyage_1_1Active.html", "classyage_1_1Active" ],
- [ "SyncQueue", "classyage_1_1SyncQueue.html", "classyage_1_1SyncQueue" ]
-]; \ No newline at end of file
diff --git a/namespaceyage_1_1details.html b/namespaceyage_1_1details.html
index b5b050a7..34890946 100644
--- a/namespaceyage_1_1details.html
+++ b/namespaceyage_1_1details.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespaceyage_1_1details.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('namespaceyage_1_1details.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -144,15 +128,11 @@ Typedefs</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/namespaceyage_1_1details.js b/namespaceyage_1_1details.js
deleted file mode 100644
index 84b71ea0..00000000
--- a/namespaceyage_1_1details.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var namespaceyage_1_1details =
-[
- [ "Coordinate", "structyage_1_1details_1_1Coordinate.html", "structyage_1_1details_1_1Coordinate" ],
- [ "Row", "classyage_1_1details_1_1Row.html", "classyage_1_1details_1_1Row" ],
- [ "RenderBatch", "structyage_1_1details_1_1RenderBatch.html", "structyage_1_1details_1_1RenderBatch" ],
- [ "Glyph", "structyage_1_1details_1_1Glyph.html", "structyage_1_1details_1_1Glyph" ]
-]; \ No newline at end of file
diff --git a/namespaceyage_1_1matrix.html b/namespaceyage_1_1matrix.html
index 5a120334..e4274683 100644
--- a/namespaceyage_1_1matrix.html
+++ b/namespaceyage_1_1matrix.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('namespaceyage_1_1matrix.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('namespaceyage_1_1matrix.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1matrix.html">matrix</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
@@ -203,7 +187,7 @@ template&lt;int M, int N, int P, int Q, class T &gt; </div>
</dd>
</dl>
<p>Requires the two matrices to be compatible with multiplication. </p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>Think if this should be a static_assert. </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>Think if this should be a static_assert. </dd></dl>
<p>Performs multiplication by getting the rows and columns, transposing one of them and then doting the result. </p>
</div>
@@ -235,15 +219,11 @@ template&lt;int M, int N, class T &gt; </div>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1matrix.html">matrix</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/nav_f.png b/nav_f.png
index 72a58a52..da564a28 100644
--- a/nav_f.png
+++ b/nav_f.png
Binary files differ
diff --git a/nav_h.png b/nav_h.png
index 33389b10..43bfa63f 100644
--- a/nav_h.png
+++ b/nav_h.png
Binary files differ
diff --git a/navtree.css b/navtree.css
deleted file mode 100644
index 41a9cb96..00000000
--- a/navtree.css
+++ /dev/null
@@ -1,143 +0,0 @@
-#nav-tree .children_ul {
- margin:0;
- padding:4px;
-}
-
-#nav-tree ul {
- list-style:none outside none;
- margin:0px;
- padding:0px;
-}
-
-#nav-tree li {
- white-space:nowrap;
- margin:0px;
- padding:0px;
-}
-
-#nav-tree .plus {
- margin:0px;
-}
-
-#nav-tree .selected {
- background-image: url('tab_a.png');
- background-repeat:repeat-x;
- color: #fff;
- text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
-
-#nav-tree img {
- margin:0px;
- padding:0px;
- border:0px;
- vertical-align: middle;
-}
-
-#nav-tree a {
- text-decoration:none;
- padding:0px;
- margin:0px;
- outline:none;
-}
-
-#nav-tree .label {
- margin:0px;
- padding:0px;
- font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-}
-
-#nav-tree .label a {
- padding:2px;
-}
-
-#nav-tree .selected a {
- text-decoration:none;
- color:#fff;
-}
-
-#nav-tree .children_ul {
- margin:0px;
- padding:0px;
-}
-
-#nav-tree .item {
- margin:0px;
- padding:0px;
-}
-
-#nav-tree {
- padding: 0px 0px;
- background-color: #FAFAFF;
- font-size:14px;
- overflow:auto;
-}
-
-#doc-content {
- overflow:auto;
- display:block;
- padding:0px;
- margin:0px;
- -webkit-overflow-scrolling : touch; /* iOS 5+ */
-}
-
-#side-nav {
- padding:0 6px 0 0;
- margin: 0px;
- display:block;
- position: absolute;
- left: 0px;
- width: 250px;
-}
-
-.ui-resizable .ui-resizable-handle {
- display:block;
-}
-
-.ui-resizable-e {
- background:url("ftv2splitbar.png") repeat scroll right center transparent;
- cursor:e-resize;
- height:100%;
- right:0;
- top:0;
- width:6px;
-}
-
-.ui-resizable-handle {
- display:none;
- font-size:0.1px;
- position:absolute;
- z-index:1;
-}
-
-#nav-tree-contents {
- margin: 6px 0px 0px 0px;
-}
-
-#nav-tree {
- background-image:url('nav_h.png');
- background-repeat:repeat-x;
- background-color: #F9FAFC;
- -webkit-overflow-scrolling : touch; /* iOS 5+ */
-}
-
-#nav-sync {
- position:absolute;
- top:5px;
- right:24px;
- z-index:0;
-}
-
-#nav-sync img {
- opacity:0.3;
-}
-
-#nav-sync img:hover {
- opacity:0.9;
-}
-
-@media print
-{
- #nav-tree { display: none; }
- div.ui-resizable-handle { display: none; position: relative; }
-}
-
diff --git a/navtree.js b/navtree.js
deleted file mode 100644
index ef75b377..00000000
--- a/navtree.js
+++ /dev/null
@@ -1,567 +0,0 @@
-var NAVTREE =
-[
- [ "YAGE", "index.html", [
- [ "Physics Engine", "md_yage_physics_README.html", null ],
- [ "Todo List", "todo.html", null ],
- [ "Deprecated List", "deprecated.html", null ],
- [ "Bug List", "bug.html", null ],
- [ "Namespaces", null, [
- [ "Namespace List", "namespaces.html", "namespaces" ],
- [ "Namespace Members", "namespacemembers.html", [
- [ "All", "namespacemembers.html", null ],
- [ "Functions", "namespacemembers_func.html", null ],
- [ "Typedefs", "namespacemembers_type.html", null ],
- [ "Enumerations", "namespacemembers_enum.html", null ],
- [ "Enumerator", "namespacemembers_eval.html", null ]
- ] ]
- ] ],
- [ "Classes", null, [
- [ "Class List", "annotated.html", "annotated" ],
- [ "Class Index", "classes.html", null ],
- [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
- [ "Class Members", "functions.html", [
- [ "All", "functions.html", "functions_dup" ],
- [ "Functions", "functions_func.html", null ],
- [ "Variables", "functions_vars.html", null ],
- [ "Typedefs", "functions_type.html", null ],
- [ "Related Functions", "functions_rela.html", null ]
- ] ]
- ] ],
- [ "Files", null, [
- [ "File List", "files.html", "files" ],
- [ "File Members", "globals.html", [
- [ "All", "globals.html", null ],
- [ "Functions", "globals_func.html", null ],
- [ "Variables", "globals_vars.html", null ],
- [ "Typedefs", "globals_type.html", null ],
- [ "Enumerator", "globals_eval.html", null ],
- [ "Macros", "globals_defs.html", null ]
- ] ]
- ] ]
- ] ]
-];
-
-var NAVTREEINDEX =
-[
-"active_8cpp.html",
-"functions_g.html",
-"shader_8h_source.html"
-];
-
-var SYNCONMSG = 'click to disable panel synchronisation';
-var SYNCOFFMSG = 'click to enable panel synchronisation';
-var SYNCONMSG = 'click to disable panel synchronisation';
-var SYNCOFFMSG = 'click to enable panel synchronisation';
-var navTreeSubIndices = new Array();
-
-function getData(varName)
-{
- var i = varName.lastIndexOf('/');
- var n = i>=0 ? varName.substring(i+1) : varName;
- return eval(n.replace(/\-/g,'_'));
-}
-
-function stripPath(uri)
-{
- return uri.substring(uri.lastIndexOf('/')+1);
-}
-
-function stripPath2(uri)
-{
- var i = uri.lastIndexOf('/');
- var s = uri.substring(i+1);
- var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
- return m ? uri.substring(i-6) : s;
-}
-
-function localStorageSupported()
-{
- try {
- return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
- }
- catch(e) {
- return false;
- }
-}
-
-
-function storeLink(link)
-{
- if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
- window.localStorage.setItem('navpath',link);
- }
-}
-
-function deleteLink()
-{
- if (localStorageSupported()) {
- window.localStorage.setItem('navpath','');
- }
-}
-
-function cachedLink()
-{
- if (localStorageSupported()) {
- return window.localStorage.getItem('navpath');
- } else {
- return '';
- }
-}
-
-function getScript(scriptName,func,show)
-{
- var head = document.getElementsByTagName("head")[0];
- var script = document.createElement('script');
- script.id = scriptName;
- script.type = 'text/javascript';
- script.onload = func;
- script.src = scriptName+'.js';
- if ($.browser.msie && $.browser.version<=8) {
- // script.onload does not work with older versions of IE
- script.onreadystatechange = function() {
- if (script.readyState=='complete' || script.readyState=='loaded') {
- func(); if (show) showRoot();
- }
- }
- }
- head.appendChild(script);
-}
-
-function createIndent(o,domNode,node,level)
-{
- var level=-1;
- var n = node;
- while (n.parentNode) { level++; n=n.parentNode; }
- if (node.childrenData) {
- var imgNode = document.createElement("img");
- imgNode.style.paddingLeft=(16*level).toString()+'px';
- imgNode.width = 16;
- imgNode.height = 22;
- imgNode.border = 0;
- node.plus_img = imgNode;
- node.expandToggle = document.createElement("a");
- node.expandToggle.href = "javascript:void(0)";
- node.expandToggle.onclick = function() {
- if (node.expanded) {
- $(node.getChildrenUL()).slideUp("fast");
- node.plus_img.src = node.relpath+"ftv2pnode.png";
- node.expanded = false;
- } else {
- expandNode(o, node, false, false);
- }
- }
- node.expandToggle.appendChild(imgNode);
- domNode.appendChild(node.expandToggle);
- imgNode.src = node.relpath+"ftv2pnode.png";
- } else {
- var span = document.createElement("span");
- span.style.display = 'inline-block';
- span.style.width = 16*(level+1)+'px';
- span.style.height = '22px';
- span.innerHTML = '&#160;';
- domNode.appendChild(span);
- }
-}
-
-var animationInProgress = false;
-
-function gotoAnchor(anchor,aname,updateLocation)
-{
- var pos, docContent = $('#doc-content');
- if (anchor.parent().attr('class')=='memItemLeft' ||
- anchor.parent().attr('class')=='fieldtype' ||
- anchor.parent().is(':header'))
- {
- pos = anchor.parent().position().top;
- } else if (anchor.position()) {
- pos = anchor.position().top;
- }
- if (pos) {
- var dist = Math.abs(Math.min(
- pos-docContent.offset().top,
- docContent[0].scrollHeight-
- docContent.height()-docContent.scrollTop()));
- animationInProgress=true;
- docContent.animate({
- scrollTop: pos + docContent.scrollTop() - docContent.offset().top
- },Math.max(50,Math.min(500,dist)),function(){
- if (updateLocation) window.location.href=aname;
- animationInProgress=false;
- });
- }
-}
-
-function newNode(o, po, text, link, childrenData, lastNode)
-{
- var node = new Object();
- node.children = Array();
- node.childrenData = childrenData;
- node.depth = po.depth + 1;
- node.relpath = po.relpath;
- node.isLast = lastNode;
-
- node.li = document.createElement("li");
- po.getChildrenUL().appendChild(node.li);
- node.parentNode = po;
-
- node.itemDiv = document.createElement("div");
- node.itemDiv.className = "item";
-
- node.labelSpan = document.createElement("span");
- node.labelSpan.className = "label";
-
- createIndent(o,node.itemDiv,node,0);
- node.itemDiv.appendChild(node.labelSpan);
- node.li.appendChild(node.itemDiv);
-
- var a = document.createElement("a");
- node.labelSpan.appendChild(a);
- node.label = document.createTextNode(text);
- node.expanded = false;
- a.appendChild(node.label);
- if (link) {
- var url;
- if (link.substring(0,1)=='^') {
- url = link.substring(1);
- link = url;
- } else {
- url = node.relpath+link;
- }
- a.className = stripPath(link.replace('#',':'));
- if (link.indexOf('#')!=-1) {
- var aname = '#'+link.split('#')[1];
- var srcPage = stripPath($(location).attr('pathname'));
- var targetPage = stripPath(link.split('#')[0]);
- a.href = srcPage!=targetPage ? url : "javascript:void(0)";
- a.onclick = function(){
- storeLink(link);
- if (!$(a).parent().parent().hasClass('selected'))
- {
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- $(a).parent().parent().addClass('selected');
- $(a).parent().parent().attr('id','selected');
- }
- var anchor = $(aname);
- gotoAnchor(anchor,aname,true);
- };
- } else {
- a.href = url;
- a.onclick = function() { storeLink(link); }
- }
- } else {
- if (childrenData != null)
- {
- a.className = "nolink";
- a.href = "javascript:void(0)";
- a.onclick = node.expandToggle.onclick;
- }
- }
-
- node.childrenUL = null;
- node.getChildrenUL = function() {
- if (!node.childrenUL) {
- node.childrenUL = document.createElement("ul");
- node.childrenUL.className = "children_ul";
- node.childrenUL.style.display = "none";
- node.li.appendChild(node.childrenUL);
- }
- return node.childrenUL;
- };
-
- return node;
-}
-
-function showRoot()
-{
- var headerHeight = $("#top").height();
- var footerHeight = $("#nav-path").height();
- var windowHeight = $(window).height() - headerHeight - footerHeight;
- (function (){ // retry until we can scroll to the selected item
- try {
- var navtree=$('#nav-tree');
- navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
- } catch (err) {
- setTimeout(arguments.callee, 0);
- }
- })();
-}
-
-function expandNode(o, node, imm, showRoot)
-{
- if (node.childrenData && !node.expanded) {
- if (typeof(node.childrenData)==='string') {
- var varName = node.childrenData;
- getScript(node.relpath+varName,function(){
- node.childrenData = getData(varName);
- expandNode(o, node, imm, showRoot);
- }, showRoot);
- } else {
- if (!node.childrenVisited) {
- getNode(o, node);
- } if (imm || ($.browser.msie && $.browser.version>8)) {
- // somehow slideDown jumps to the start of tree for IE9 :-(
- $(node.getChildrenUL()).show();
- } else {
- $(node.getChildrenUL()).slideDown("fast");
- }
- if (node.isLast) {
- node.plus_img.src = node.relpath+"ftv2mlastnode.png";
- } else {
- node.plus_img.src = node.relpath+"ftv2mnode.png";
- }
- node.expanded = true;
- }
- }
-}
-
-function glowEffect(n,duration)
-{
- n.addClass('glow').delay(duration).queue(function(next){
- $(this).removeClass('glow');next();
- });
-}
-
-function highlightAnchor()
-{
- var aname = $(location).attr('hash');
- var anchor = $(aname);
- if (anchor.parent().attr('class')=='memItemLeft'){
- var rows = $('.memberdecls tr[class$="'+
- window.location.hash.substring(1)+'"]');
- glowEffect(rows.children(),300); // member without details
- } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
- glowEffect(anchor.parents('div.memitem'),1000); // enum value
- } else if (anchor.parent().attr('class')=='fieldtype'){
- glowEffect(anchor.parent().parent(),1000); // struct field
- } else if (anchor.parent().is(":header")) {
- glowEffect(anchor.parent(),1000); // section header
- } else {
- glowEffect(anchor.next(),1000); // normal member
- }
- gotoAnchor(anchor,aname,false);
-}
-
-function selectAndHighlight(hash,n)
-{
- var a;
- if (hash) {
- var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
- a=$('.item a[class$="'+link+'"]');
- }
- if (a && a.length) {
- a.parent().parent().addClass('selected');
- a.parent().parent().attr('id','selected');
- highlightAnchor();
- } else if (n) {
- $(n.itemDiv).addClass('selected');
- $(n.itemDiv).attr('id','selected');
- }
- if ($('#nav-tree-contents .item:first').hasClass('selected')) {
- $('#nav-sync').css('top','30px');
- } else {
- $('#nav-sync').css('top','5px');
- }
- showRoot();
-}
-
-function showNode(o, node, index, hash)
-{
- if (node && node.childrenData) {
- if (typeof(node.childrenData)==='string') {
- var varName = node.childrenData;
- getScript(node.relpath+varName,function(){
- node.childrenData = getData(varName);
- showNode(o,node,index,hash);
- },true);
- } else {
- if (!node.childrenVisited) {
- getNode(o, node);
- }
- $(node.getChildrenUL()).css({'display':'block'});
- if (node.isLast) {
- node.plus_img.src = node.relpath+"ftv2mlastnode.png";
- } else {
- node.plus_img.src = node.relpath+"ftv2mnode.png";
- }
- node.expanded = true;
- var n = node.children[o.breadcrumbs[index]];
- if (index+1<o.breadcrumbs.length) {
- showNode(o,n,index+1,hash);
- } else {
- if (typeof(n.childrenData)==='string') {
- var varName = n.childrenData;
- getScript(n.relpath+varName,function(){
- n.childrenData = getData(varName);
- node.expanded=false;
- showNode(o,node,index,hash); // retry with child node expanded
- },true);
- } else {
- var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
- if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
- expandNode(o, n, true, true);
- }
- selectAndHighlight(hash,n);
- }
- }
- }
- } else {
- selectAndHighlight(hash);
- }
-}
-
-function removeToInsertLater(element) {
- var parentNode = element.parentNode;
- var nextSibling = element.nextSibling;
- parentNode.removeChild(element);
- return function() {
- if (nextSibling) {
- parentNode.insertBefore(element, nextSibling);
- } else {
- parentNode.appendChild(element);
- }
- };
-}
-
-function getNode(o, po)
-{
- var insertFunction = removeToInsertLater(po.li);
- po.childrenVisited = true;
- var l = po.childrenData.length-1;
- for (var i in po.childrenData) {
- var nodeData = po.childrenData[i];
- po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
- i==l);
- }
- insertFunction();
-}
-
-function gotoNode(o,subIndex,root,hash,relpath)
-{
- var nti = navTreeSubIndices[subIndex][root+hash];
- o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
- if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
- navTo(o,NAVTREE[0][1],"",relpath);
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- }
- if (o.breadcrumbs) {
- o.breadcrumbs.unshift(0); // add 0 for root node
- showNode(o, o.node, 0, hash);
- }
-}
-
-function navTo(o,root,hash,relpath)
-{
- var link = cachedLink();
- if (link) {
- var parts = link.split('#');
- root = parts[0];
- if (parts.length>1) hash = '#'+parts[1];
- else hash='';
- }
- if (hash.match(/^#l\d+$/)) {
- var anchor=$('a[name='+hash.substring(1)+']');
- glowEffect(anchor.parent(),1000); // line number
- hash=''; // strip line number anchors
- //root=root.replace(/_source\./,'.'); // source link to doc link
- }
- var url=root+hash;
- var i=-1;
- while (NAVTREEINDEX[i+1]<=url) i++;
- if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
- if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash,relpath)
- } else {
- getScript(relpath+'navtreeindex'+i,function(){
- navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
- if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash,relpath);
- }
- },true);
- }
-}
-
-function showSyncOff(n,relpath)
-{
- n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
-}
-
-function showSyncOn(n,relpath)
-{
- n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
-}
-
-function toggleSyncButton(relpath)
-{
- var navSync = $('#nav-sync');
- if (navSync.hasClass('sync')) {
- navSync.removeClass('sync');
- showSyncOff(navSync,relpath);
- storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
- } else {
- navSync.addClass('sync');
- showSyncOn(navSync,relpath);
- deleteLink();
- }
-}
-
-function initNavTree(toroot,relpath)
-{
- var o = new Object();
- o.toroot = toroot;
- o.node = new Object();
- o.node.li = document.getElementById("nav-tree-contents");
- o.node.childrenData = NAVTREE;
- o.node.children = new Array();
- o.node.childrenUL = document.createElement("ul");
- o.node.getChildrenUL = function() { return o.node.childrenUL; };
- o.node.li.appendChild(o.node.childrenUL);
- o.node.depth = 0;
- o.node.relpath = relpath;
- o.node.expanded = false;
- o.node.isLast = true;
- o.node.plus_img = document.createElement("img");
- o.node.plus_img.src = relpath+"ftv2pnode.png";
- o.node.plus_img.width = 16;
- o.node.plus_img.height = 22;
-
- if (localStorageSupported()) {
- var navSync = $('#nav-sync');
- if (cachedLink()) {
- showSyncOff(navSync,relpath);
- navSync.removeClass('sync');
- } else {
- showSyncOn(navSync,relpath);
- }
- navSync.click(function(){ toggleSyncButton(relpath); });
- }
-
- $(window).load(function(){
- navTo(o,toroot,window.location.hash,relpath);
- showRoot();
- });
-
- $(window).bind('hashchange', function(){
- if (window.location.hash && window.location.hash.length>1){
- var a;
- if ($(location).attr('hash')){
- var clslink=stripPath($(location).attr('pathname'))+':'+
- $(location).attr('hash').substring(1);
- a=$('.item a[class$="'+clslink+'"]');
- }
- if (a==null || !$(a).parent().parent().hasClass('selected')){
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- }
- var link=stripPath2($(location).attr('pathname'));
- navTo(o,link,$(location).attr('hash'),relpath);
- } else if (!animationInProgress) {
- $('#doc-content').scrollTop(0);
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- navTo(o,toroot,window.location.hash,relpath);
- }
- })
-}
-
diff --git a/navtreeindex0.js b/navtreeindex0.js
deleted file mode 100644
index 562333a0..00000000
--- a/navtreeindex0.js
+++ /dev/null
@@ -1,253 +0,0 @@
-var NAVTREEINDEX0 =
-{
-"active_8cpp.html":[6,0,0,5,0],
-"active_8h.html":[6,0,0,5,1],
-"active_8h_source.html":[6,0,0,5,1],
-"annotated.html":[5,0],
-"batch_8h.html":[6,0,0,4,0],
-"batch_8h_source.html":[6,0,0,4,0],
-"body_8cpp.html":[6,0,0,3,0],
-"body_8h.html":[6,0,0,3,1],
-"body_8h_source.html":[6,0,0,3,1],
-"bug.html":[3],
-"camera_8cpp.html":[6,0,0,0,0],
-"camera_8h.html":[6,0,0,0,1],
-"camera_8h_source.html":[6,0,0,0,1],
-"classes.html":[5,1],
-"classyage_1_1Active.html":[5,0,0,35],
-"classyage_1_1Active.html#a4b82fec6f02c00d186b1b840ce8f11dc":[5,0,0,35,0],
-"classyage_1_1Active.html#a665673b94eb5ce7c448839e5bb6e0326":[5,0,0,35,5],
-"classyage_1_1Active.html#a7cd7344f0b8b7aa93ac0449e2fbbf7bd":[5,0,0,35,1],
-"classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064":[5,0,0,35,3],
-"classyage_1_1Active.html#ab69d08cf4804b59ac9db283015e749f2":[5,0,0,35,2],
-"classyage_1_1Active.html#add837044e73e4bc9849f09495535600c":[5,0,0,35,4],
-"classyage_1_1Batch.html":[5,0,0,28],
-"classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477":[5,0,0,28,2],
-"classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e":[5,0,0,28,1],
-"classyage_1_1Batch.html#a3439c8dd88d87be4460161d233044c65":[5,0,0,28,3],
-"classyage_1_1Batch.html#ab458f3129d2a329806dd00c6be77709d":[5,0,0,28,0],
-"classyage_1_1Body.html":[5,0,0,22],
-"classyage_1_1Body.html#a01b2a500e71bc88f2cb597f376bc8289":[5,0,0,22,9],
-"classyage_1_1Body.html#a1023ebd31914571f137fb5aadc88c364":[5,0,0,22,4],
-"classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36":[5,0,0,22,2],
-"classyage_1_1Body.html#a262c896b473d7672cde524145cd7981d":[5,0,0,22,6],
-"classyage_1_1Body.html#a36c0a4485bf9a704901d88c6cf212a5f":[5,0,0,22,5],
-"classyage_1_1Body.html#a454a7c59d07c94afb0a35c3d53ec2191":[5,0,0,22,8],
-"classyage_1_1Body.html#a4f61913cf00244a6160e09cda846f766":[5,0,0,22,7],
-"classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878":[5,0,0,22,1],
-"classyage_1_1Body.html#a8a800cef0fb3561332d4a97c790e7225":[5,0,0,22,3],
-"classyage_1_1Body.html#a8fe4f244be47f1336a57c1f2aa095157":[5,0,0,22,10],
-"classyage_1_1Body.html#aeca769807d9b6f6fb3c9f61deaa83b86":[5,0,0,22,0],
-"classyage_1_1Body.html#afead7edec899748eab78879e6e6c5741":[5,0,0,22,11],
-"classyage_1_1Camera.html":[5,0,0,2],
-"classyage_1_1Camera.html#a012820185cceb451926bc4ef1607b324":[5,0,0,2,1],
-"classyage_1_1Camera.html#a13be1e50638977d62cff9ffba1213611":[5,0,0,2,0],
-"classyage_1_1Camera.html#a8b50af04dae6eca905c5008ef93b72d0":[5,0,0,2,3],
-"classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c":[5,0,0,2,2],
-"classyage_1_1Collider.html":[5,0,0,23],
-"classyage_1_1Collider.html#a2ae348a82a0ca7a871c05f36e5031161":[5,0,0,23,3],
-"classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9":[5,0,0,23,2],
-"classyage_1_1Collider.html#abbab9373c0805ffa5215c08b82eaed03":[5,0,0,23,1],
-"classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308":[5,0,0,23,4],
-"classyage_1_1Collider.html#ae33aeb0711409e7c3ef9e21ed99fa8a3":[5,0,0,23,0],
-"classyage_1_1CollisionBody.html":[5,0,0,24],
-"classyage_1_1CollisionBody.html#a5289e613269facc45cd451872c17a83d":[5,0,0,24,0],
-"classyage_1_1CollisionBody.html#a758b2f867f276f4c7e02ebda2cd04c8b":[5,0,0,24,1],
-"classyage_1_1Drawable.html":[5,0,0,29],
-"classyage_1_1Drawable.html#abee95e68b5bffef86a35dafca296c45e":[5,0,0,29,0],
-"classyage_1_1ImageLoader.html":[5,0,0,3],
-"classyage_1_1ImageLoader.html#ad8dcdaaed43713f07723f2b6719d1b32":[5,0,0,3,0],
-"classyage_1_1IoManager.html":[5,0,0,4],
-"classyage_1_1IoManager.html#a75d13ca634df592e44e4152fedcd446d":[5,0,0,4,0],
-"classyage_1_1LogMessage.html":[5,0,0,6],
-"classyage_1_1LogMessage.html#a31eb7ca394acbcfedca104e709f1c4ae":[5,0,0,6,5],
-"classyage_1_1LogMessage.html#a855e0e72055f785def530feaf27cbeab":[5,0,0,6,4],
-"classyage_1_1LogMessage.html#aed38ed794cdc0b3d7776f424570e92da":[5,0,0,6,6],
-"classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be":[5,0,0,6,2],
-"classyage_1_1LogMessage.html#af79ecd529e839a5a3e99077dde60df90":[5,0,0,6,3],
-"classyage_1_1LogMessage.html#af82ed7ceef5cfdac54ad2e176deb9fca":[5,0,0,6,1],
-"classyage_1_1LogMessage.html#aff02b76416d2846736b7ecd798921a0a":[5,0,0,6,7],
-"classyage_1_1LogSink.html":[5,0,0,7],
-"classyage_1_1LogSink.html#a1ba5b4000f07f581e0d0c2babb2811dc":[5,0,0,7,3],
-"classyage_1_1LogSink.html#a43a7bf025e46197b541f186e16209356":[5,0,0,7,4],
-"classyage_1_1LogSink.html#a8583ac57ebff98ab38c613c03b5bfbba":[5,0,0,7,1],
-"classyage_1_1LogSink.html#aadebaf552b839879189965faf7b504cf":[5,0,0,7,2],
-"classyage_1_1LogSink.html#ab7b70959364771b105c0dffa0b64c38e":[5,0,0,7,0],
-"classyage_1_1LogSink.html#abe2e73398ecb925233b50be5d15e20f9":[5,0,0,7,5],
-"classyage_1_1LogSink.html#ac41716cf03dac6311cb7287c9edf8a8d":[5,0,0,7,6],
-"classyage_1_1Logger.html":[5,0,0,5],
-"classyage_1_1Logger.html#a036fcbfcb9d3428931ec5a11237501a8":[5,0,0,5,5],
-"classyage_1_1Logger.html#a2ce5eb7eb1b108e38c1b90655999a8eb":[5,0,0,5,10],
-"classyage_1_1Logger.html#a3c7d6d1a9ccf0397dc81350cef6782f2":[5,0,0,5,8],
-"classyage_1_1Logger.html#a3d54590303257e9a8d1da26d59571352":[5,0,0,5,1],
-"classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd":[5,0,0,5,4],
-"classyage_1_1Logger.html#a71f6ab0fa1e86d790553c0763a255b2b":[5,0,0,5,2],
-"classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64":[5,0,0,5,0],
-"classyage_1_1Logger.html#aac48688c66402e9bc63c4871641ab245":[5,0,0,5,9],
-"classyage_1_1Logger.html#acbd21a2da8b423e9f606c386cabac074":[5,0,0,5,3],
-"classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e":[5,0,0,5,7],
-"classyage_1_1Logger.html#afe5dc1d30d3fd2599a119455672d6e00":[5,0,0,5,6],
-"classyage_1_1Matrix.html":[5,0,0,17],
-"classyage_1_1Matrix.html#a07678d7007e89487c7168df84f2a4fa8":[5,0,0,17,12],
-"classyage_1_1Matrix.html#a0ab11922319366f6e74f6e9e7d7abeed":[5,0,0,17,14],
-"classyage_1_1Matrix.html#a0cc8e242b2e8319789aae0e1d81834a1":[5,0,0,17,11],
-"classyage_1_1Matrix.html#a0e989030df9ebc7e3885a7bc811a45c6":[5,0,0,17,10],
-"classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b":[5,0,0,17,1],
-"classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851":[5,0,0,17,4],
-"classyage_1_1Matrix.html#a2148cd52008892765ad90250c68afba1":[5,0,0,17,3],
-"classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad":[5,0,0,17,0],
-"classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b":[5,0,0,17,5],
-"classyage_1_1Matrix.html#a83d77d3a40ced5e2b703a6d66b6e6055":[5,0,0,17,2],
-"classyage_1_1Matrix.html#a89e826d2c6646002cfae23dde7f61145":[5,0,0,17,9],
-"classyage_1_1Matrix.html#a8b7e0913efdb5e8c9ff39df4c4f36228":[5,0,0,17,7],
-"classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8":[5,0,0,17,6],
-"classyage_1_1Matrix.html#a9e9cbf0fd7c768696ef909bdac1a706d":[5,0,0,17,13],
-"classyage_1_1Matrix.html#acc2d0763f060c923ce53b37143d0a7bb":[5,0,0,17,8],
-"classyage_1_1ParticleBody.html":[5,0,0,25],
-"classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c":[5,0,0,25,2],
-"classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b":[5,0,0,25,1],
-"classyage_1_1ParticleBody.html#ae20aad802b5620597d0521663061efc0":[5,0,0,25,0],
-"classyage_1_1Rectangle.html":[5,0,0,30],
-"classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e":[5,0,0,30,0],
-"classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891":[5,0,0,30,1],
-"classyage_1_1RectangleCollider.html":[5,0,0,26],
-"classyage_1_1RectangleCollider.html#a81e825cf009a437bc0f61b846cac66f6":[5,0,0,26,1],
-"classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4":[5,0,0,26,2],
-"classyage_1_1RectangleCollider.html#af9e0964655073b0a190c9d06b449a969":[5,0,0,26,0],
-"classyage_1_1ResourceManager.html":[5,0,0,8],
-"classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc":[5,0,0,8,0],
-"classyage_1_1RigidBody.html":[5,0,0,27],
-"classyage_1_1RigidBody.html#aed946934f970694c6f6840b09600a606":[5,0,0,27,0],
-"classyage_1_1Shader.html":[5,0,0,31],
-"classyage_1_1Shader.html#a1a006dcb52a4fb9f1dc61df68d3676f5":[5,0,0,31,1],
-"classyage_1_1Shader.html#a1a637a37d3e72fe1cd53602e80ab23ab":[5,0,0,31,7],
-"classyage_1_1Shader.html#a34fe30eb6e6d595c1996e8ea6fb3961a":[5,0,0,31,0],
-"classyage_1_1Shader.html#a5d966c327ae0749ca5758880b684103a":[5,0,0,31,4],
-"classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c":[5,0,0,31,9],
-"classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd":[5,0,0,31,3],
-"classyage_1_1Shader.html#a96c50a15f45d064f43d1f01e84105e78":[5,0,0,31,8],
-"classyage_1_1Shader.html#ac9bff8500e2adfa1745c843bc612f215":[5,0,0,31,6],
-"classyage_1_1Shader.html#adf6dc3a526921d62b55a552f38958dd2":[5,0,0,31,2],
-"classyage_1_1Shader.html#af94e7c75abb18015ade6126465a5fe05":[5,0,0,31,5],
-"classyage_1_1Shape.html":[5,0,0,32],
-"classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539":[5,0,0,32,0],
-"classyage_1_1Sprite.html":[5,0,0,33],
-"classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987":[5,0,0,33,0],
-"classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1":[5,0,0,33,5],
-"classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1":[5,0,0,33,2],
-"classyage_1_1Sprite.html#a3fe5615022d2b157b9e6375197254897":[5,0,0,33,7],
-"classyage_1_1Sprite.html#a8eed26f4fa57b3ad47d791564233ee40":[5,0,0,33,4],
-"classyage_1_1Sprite.html#a97dd80e05efb9399ee8471ff40a77bee":[5,0,0,33,6],
-"classyage_1_1Sprite.html#aa2f833e040940616fa17ee8f02f8cab2":[5,0,0,33,3],
-"classyage_1_1Sprite.html#aa5a7958e17f1d042226b91fb1829642e":[5,0,0,33,1],
-"classyage_1_1SpriteBatch.html":[5,0,0,34],
-"classyage_1_1SpriteBatch.html#a195c4aca60815d413c65dce99389282d":[5,0,0,34,9],
-"classyage_1_1SpriteBatch.html#a1b365d89c096d7fa138e1c7091f1d737":[5,0,0,34,7],
-"classyage_1_1SpriteBatch.html#a204782dd15c82376555ad0b049c4167f":[5,0,0,34,8],
-"classyage_1_1SpriteBatch.html#a30a46a7182235a739916d540781af652":[5,0,0,34,1],
-"classyage_1_1SpriteBatch.html#a6e01d11880a841b153e950aa8307b1a5":[5,0,0,34,10],
-"classyage_1_1SpriteBatch.html#a7f18a506f4188acd2219da8147dc0e1e":[5,0,0,34,2],
-"classyage_1_1SpriteBatch.html#acf88f98ccc7ce8effd2acfded27b6af0":[5,0,0,34,5],
-"classyage_1_1SpriteBatch.html#af6293aac69e1124199297e5b921a4872":[5,0,0,34,4],
-"classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632":[5,0,0,34,6],
-"classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a":[5,0,0,34,3],
-"classyage_1_1SpriteBatch.html#afda50a8a2a6c9ffd1b9d962fae223f8a":[5,0,0,34,0],
-"classyage_1_1SpriteSheet.html":[5,0,0,9],
-"classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0":[5,0,0,9,2],
-"classyage_1_1SpriteSheet.html#a50a04ebc989dbc63b0aa6d873da5ccd9":[5,0,0,9,1],
-"classyage_1_1SpriteSheet.html#a73db999ab17c4846f036eb47470176f6":[5,0,0,9,0],
-"classyage_1_1SyncQueue.html":[5,0,0,36],
-"classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b":[5,0,0,36,0],
-"classyage_1_1SyncQueue.html#a1f7f099e1347b82c1f2b72a5352ca05e":[5,0,0,36,3],
-"classyage_1_1SyncQueue.html#a43e4ba65c8e367ed55da9b8e3e1567b6":[5,0,0,36,2],
-"classyage_1_1SyncQueue.html#a4c01a855e97a46449a97c76634ef7678":[5,0,0,36,6],
-"classyage_1_1SyncQueue.html#a4ef8940b49b9c1b7a213fd38847370b1":[5,0,0,36,5],
-"classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c":[5,0,0,36,1],
-"classyage_1_1SyncQueue.html#ab8a3c646e1d2f9adfcbcfbaa2e2a4b27":[5,0,0,36,4],
-"classyage_1_1TextureCache.html":[5,0,0,10],
-"classyage_1_1TextureCache.html#a5f6af0bd513dd393061b2d9d18362692":[5,0,0,10,0],
-"classyage_1_1TextureCache.html#abb785ce35eb847c02de67dc9e6e06bcd":[5,0,0,10,2],
-"classyage_1_1TextureCache.html#ad4929640230f9a74fcd634416fe0974f":[5,0,0,10,1],
-"classyage_1_1Vector.html":[5,0,0,18],
-"classyage_1_1Vector.html#a54c22538916cfb3b838724b8f8662c35":[5,0,0,18,4],
-"classyage_1_1Vector.html#a55fd6c60a95832ad4b68083071f9866f":[5,0,0,18,1],
-"classyage_1_1Vector.html#a81efa1cb9d4ce8bb8c5cf9652a5650a2":[5,0,0,18,3],
-"classyage_1_1Vector.html#a956f7b6d02c0309adece311f59c8beae":[5,0,0,18,5],
-"classyage_1_1Vector.html#aa291a8ee264f81165b529b7f3a0c265d":[5,0,0,18,2],
-"classyage_1_1Vector.html#ac9b202913c03bde201e350e855fbbffa":[5,0,0,18,0],
-"classyage_1_1Vector2.html":[5,0,0,19],
-"classyage_1_1Vector2.html#a14a436185842f7375d02b57a37832740":[5,0,0,19,5],
-"classyage_1_1Vector2.html#a216ac57d39572b46ab8307a7728e4456":[5,0,0,19,7],
-"classyage_1_1Vector2.html#a3ef3bc2954f387f1db2165a884765ad0":[5,0,0,19,2],
-"classyage_1_1Vector2.html#a50c108903be424de1c41ce31fddd23ea":[5,0,0,19,0],
-"classyage_1_1Vector2.html#a554645b415a76af47698985b7757f0c2":[5,0,0,19,6],
-"classyage_1_1Vector2.html#a5a777413b63e68dc5f797d31e3d7beaf":[5,0,0,19,4],
-"classyage_1_1Vector2.html#aacee766d18741a925a47b91fa0080822":[5,0,0,19,3],
-"classyage_1_1Vector2.html#af69d534302a406bac419589e0a2f2917":[5,0,0,19,1],
-"classyage_1_1Vector3.html":[5,0,0,20],
-"classyage_1_1Vector3.html#a163c42efd0a4f365abb612c031859820":[5,0,0,20,8],
-"classyage_1_1Vector3.html#a3076edb39227c1fcc77a8160fb9c5832":[5,0,0,20,7],
-"classyage_1_1Vector3.html#a36744e7ef6c50b117e4105f1752c93c0":[5,0,0,20,2],
-"classyage_1_1Vector3.html#a745b76ba3e49f5c73f53cb065ddf337b":[5,0,0,20,0],
-"classyage_1_1Vector3.html#a9b984c33ac0a7d7ade6963baea0e5ee8":[5,0,0,20,4],
-"classyage_1_1Vector3.html#aca2fa665275db5e0b842f64106b0c797":[5,0,0,20,6],
-"classyage_1_1Vector3.html#ad30c9989f25ef241c59a6c59661daf3a":[5,0,0,20,1],
-"classyage_1_1Vector3.html#ad8efd76556fe2ff568f81ce1d4dd1888":[5,0,0,20,5],
-"classyage_1_1Vector3.html#ae91b009b2e5e81163ebf80bf5bcbe7f0":[5,0,0,20,3],
-"classyage_1_1Vector4.html":[5,0,0,21],
-"classyage_1_1Vector4.html#a0c7bf86ba48c9bda10e0605441bb8c3c":[5,0,0,21,5],
-"classyage_1_1Vector4.html#a111ecbf09543e8fafaf3aedef77d168d":[5,0,0,21,3],
-"classyage_1_1Vector4.html#a36537a95ca1764334fe9b9b1f001206d":[5,0,0,21,2],
-"classyage_1_1Vector4.html#a4936ef80cc2726f6b20f525977339a13":[5,0,0,21,8],
-"classyage_1_1Vector4.html#aad3540315f15d69a84aa4573d3e1c583":[5,0,0,21,6],
-"classyage_1_1Vector4.html#ab6e8f6e88c13d3bbfa1a6591d97b7d03":[5,0,0,21,0],
-"classyage_1_1Vector4.html#ac1b2968c7a6a6e9f2c74507760b73cdc":[5,0,0,21,10],
-"classyage_1_1Vector4.html#acf752077d460438407ed3c84fe199f63":[5,0,0,21,7],
-"classyage_1_1Vector4.html#ad6d84a870f51573b60490591cdbd8b4c":[5,0,0,21,4],
-"classyage_1_1Vector4.html#ae0609f2db5e14fe05fddd71ec09f4735":[5,0,0,21,9],
-"classyage_1_1Vector4.html#ae40311bf406263427426a7de5108c6c1":[5,0,0,21,1],
-"classyage_1_1Window.html":[5,0,0,11],
-"classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34":[5,0,0,11,12],
-"classyage_1_1Window.html#a1225a2b5eff6d44a6bce3f0f5f10e2bf":[5,0,0,11,1],
-"classyage_1_1Window.html#a1a311e27b1e588f0fce540ce040dcbd5":[5,0,0,11,10],
-"classyage_1_1Window.html#a4be115daea6c7473fca81623c547d821":[5,0,0,11,2],
-"classyage_1_1Window.html#a5247a4164bf0006fe9f034cd27c5b6db":[5,0,0,11,8],
-"classyage_1_1Window.html#a5e3b209289bc343609d809d5b7f23cc8":[5,0,0,11,11],
-"classyage_1_1Window.html#a7d7bd2f22e095df387e8b5cda2bb484e":[5,0,0,11,0],
-"classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359":[5,0,0,11,13],
-"classyage_1_1Window.html#a98c07656f90a6205f24dfe85ef1137de":[5,0,0,11,9],
-"classyage_1_1Window.html#a98e2a33820ad63b2c94c56e203ff6e58":[5,0,0,11,4],
-"classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0":[5,0,0,11,3],
-"classyage_1_1Window.html#aa421df451f166dfe6441562e92b99115":[5,0,0,11,6],
-"classyage_1_1Window.html#ae95d8670801c04af43da9e4fcc0e1006":[5,0,0,11,7],
-"classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745":[5,0,0,11,5],
-"classyage_1_1details_1_1Row.html":[5,0,0,0,1],
-"classyage_1_1details_1_1Row.html#a18904acbce1c6084bc25a753989b5f06":[5,0,0,0,1,0],
-"classyage_1_1details_1_1Row.html#a703d4eee36d93b1227ad734bdcf27190":[5,0,0,0,1,1],
-"classyage_1_1details_1_1Row.html#adf2f7047871fdc78ba66d9d08cd07736":[5,0,0,0,1,2],
-"collider_8h.html":[6,0,0,3,2],
-"collider_8h_source.html":[6,0,0,3,2],
-"collisionbody_8h.html":[6,0,0,3,3],
-"collisionbody_8h_source.html":[6,0,0,3,3],
-"deprecated.html":[2],
-"dir_059f34b87ae2c2af887b23a7e5e8e88f.html":[6,0,0,4],
-"dir_0a5be4b85c8e2c05f7a9f5a803f53125.html":[6,0,0],
-"dir_11841e5da2063fc5766a682aee38e289.html":[6,0,0,0],
-"dir_48a91ae829881cbedcfc124d2027890d.html":[6,0,0,5],
-"dir_a58d7658bbcfd3d3d7296185ebe55c28.html":[6,0,0,3],
-"dir_aa7f86daaaa64c448f636c0e65de2cec.html":[6,0,0,2],
-"dir_d09e80fdcf0bb585bbe3b7099c52d028.html":[6,0,0,1],
-"drawable_8h.html":[6,0,0,4,1],
-"drawable_8h_source.html":[6,0,0,4,1],
-"ellipse_8h.html":[6,0,0,4,2],
-"ellipse_8h_source.html":[6,0,0,4,2],
-"files.html":[6,0],
-"functions.html":[5,3,0],
-"functions.html":[5,3,0,0],
-"functions_b.html":[5,3,0,1],
-"functions_c.html":[5,3,0,2],
-"functions_d.html":[5,3,0,3],
-"functions_e.html":[5,3,0,4],
-"functions_f.html":[5,3,0,5],
-"functions_func.html":[5,3,1]
-};
diff --git a/navtreeindex1.js b/navtreeindex1.js
deleted file mode 100644
index 988c478a..00000000
--- a/navtreeindex1.js
+++ /dev/null
@@ -1,253 +0,0 @@
-var NAVTREEINDEX1 =
-{
-"functions_g.html":[5,3,0,6],
-"functions_h.html":[5,3,0,7],
-"functions_i.html":[5,3,0,8],
-"functions_k.html":[5,3,0,9],
-"functions_l.html":[5,3,0,10],
-"functions_m.html":[5,3,0,11],
-"functions_n.html":[5,3,0,12],
-"functions_o.html":[5,3,0,13],
-"functions_p.html":[5,3,0,14],
-"functions_r.html":[5,3,0,15],
-"functions_rela.html":[5,3,4],
-"functions_s.html":[5,3,0,16],
-"functions_t.html":[5,3,0,17],
-"functions_type.html":[5,3,3],
-"functions_u.html":[5,3,0,18],
-"functions_v.html":[5,3,0,19],
-"functions_vars.html":[5,3,2],
-"functions_w.html":[5,3,0,20],
-"functions_x.html":[5,3,0,21],
-"functions_y.html":[5,3,0,22],
-"functions_z.html":[5,3,0,23],
-"functions_~.html":[5,3,0,24],
-"globals.html":[6,1,0],
-"globals_defs.html":[6,1,5],
-"globals_eval.html":[6,1,4],
-"globals_func.html":[6,1,1],
-"globals_type.html":[6,1,3],
-"globals_vars.html":[6,1,2],
-"hierarchy.html":[5,2],
-"imageloader_8cpp.html":[6,0,0,0,2],
-"imageloader_8h.html":[6,0,0,0,3],
-"imageloader_8h_source.html":[6,0,0,0,3],
-"index.html":[],
-"input_8h.html":[6,0,0,1,0],
-"input_8h.html#a088324ad8995e3eb76024e3e79083d48":[6,0,0,1,0,0],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822":[6,0,0,1,0,1],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a0123827c03dce5d07ebd43bd649a1073":[6,0,0,1,0,1,118],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a02129bb861061d1a052c592e2dc6b383":[6,0,0,1,0,1,42],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a0d61f8370cad1d412f80b84d143e1257":[6,0,0,1,0,1,21],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a1547ad05c44be2cc614be32159bf666b":[6,0,0,1,0,1,48],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a17de1e647789892e1fb512bf04db4866":[6,0,0,1,0,1,108],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a1a9c94725005bc4759507db8acc8da33":[6,0,0,1,0,1,105],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a1ab6dcd85380f2d3e882fbd2f6fda566":[6,0,0,1,0,1,49],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a1faf42f2823f184eb2c9f0dffe5d73f2":[6,0,0,1,0,1,75],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a2091809ab6bdbc0a1975bf61d6099748":[6,0,0,1,0,1,101],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a2140df7839a3713724b35168defcc975":[6,0,0,1,0,1,107],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a21507b40c80068eda19865706fdc2403":[6,0,0,1,0,1,57],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a21c2e59531c8710156d34a3c30ac81d5":[6,0,0,1,0,1,44],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a22517dfceb401f35b1b59999ba74c700":[6,0,0,1,0,1,7],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a2468649b6215c4cdd2aef5095b3f5932":[6,0,0,1,0,1,83],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a291554596c183e837f0a6bec3767c891":[6,0,0,1,0,1,69],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a2cfe3b4f9911c5899d79f171d6b9cc4a":[6,0,0,1,0,1,111],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a2d0bfa737eccfce7842cd2230eed6712":[6,0,0,1,0,1,97],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a30808a0391df7790292aa5c13f6195e4":[6,0,0,1,0,1,109],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a324bf1f059b99e2882bc1d567080d8ed":[6,0,0,1,0,1,66],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a32f68a60cef40faedbc6af20298c1a1e":[6,0,0,1,0,1,56],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a331b3100a485d8cacff1d3df8e9b0c13":[6,0,0,1,0,1,52],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a37f438df6a6d5ba4c17ef8ca58562f00":[6,0,0,1,0,1,74],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a3a3ea00cfc35332cedf6e5e9a32e94da":[6,0,0,1,0,1,23],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a3a92f3bbf26e4ea5ea7ce7db2f432c56":[6,0,0,1,0,1,114],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a3d548437292c0cd1662fc30d420f2c27":[6,0,0,1,0,1,104],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a3ed53fbeb1eab0443561b68ca0c0b5cf":[6,0,0,1,0,1,120],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a44c29edb103a2872f519ad0c9a0fdaaa":[6,0,0,1,0,1,34],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a47489eb597b7db34caa24b1fc78fc839":[6,0,0,1,0,1,76],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a4787509ad9f9d747a81a30e9dde3d4a7":[6,0,0,1,0,1,77],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a4b6bf4b531770872d4328ce69bef5627":[6,0,0,1,0,1,72],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a4c614360da93c0a041b22e537de151eb":[6,0,0,1,0,1,39],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a4d9b3e9fc12849d060371eb65154c751":[6,0,0,1,0,1,3],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a5206560a306a2e085a437fd258eb57ce":[6,0,0,1,0,1,40],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a56d8353718e6fdc78b8d69078a2cdb94":[6,0,0,1,0,1,85],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a57cec4137b614c87cb4e24a3d003a3e0":[6,0,0,1,0,1,43],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a5dbc98dcc983a70728bd082d1a47546e":[6,0,0,1,0,1,37],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a61e9c06ea9a85a5088a499df6458d276":[6,0,0,1,0,1,41],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a61ee777e7f71dc466c3b2c685d8d313b":[6,0,0,1,0,1,55],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a62e75b78c155e8549c5c5edb434a7757":[6,0,0,1,0,1,103],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a63a707029860972efa1c44ac6016e098":[6,0,0,1,0,1,116],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a643b0662422d1d0dffa3fca2e2bf28a8":[6,0,0,1,0,1,80],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a646da671ca01bb5d84dbb5fb2238dc8e":[6,0,0,1,0,1,6],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a6506ae39fdca9845e3a6de3865183e57":[6,0,0,1,0,1,1],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a65d3215a061ffc8962994cdf549e31e4":[6,0,0,1,0,1,14],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a684d325a7303f52e64011467ff5c5758":[6,0,0,1,0,1,58],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a69691c7bdcc3ce6d5d8a1361f22d04ac":[6,0,0,1,0,1,31],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a696b031073e74bf2cb98e5ef201d4aa3":[6,0,0,1,0,1,0],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a6e2e9ebea6f89bc9235928b0794bc261":[6,0,0,1,0,1,12],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a6f5d8e41084b4d3d47fa621c459eede1":[6,0,0,1,0,1,54],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a710533dd879dd1202e5c73b27705bf02":[6,0,0,1,0,1,63],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a71ddb986230a88155bf74e65f644dda4":[6,0,0,1,0,1,8],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a71f42e8faf0fb7cb14174c8481461c00":[6,0,0,1,0,1,102],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a766b4a88cba7645629bac70fd01d8275":[6,0,0,1,0,1,98],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a77e9eee7c579eef5f3731ecf1053c02e":[6,0,0,1,0,1,90],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a78232351eaf00755d136afad0745157b":[6,0,0,1,0,1,9],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a7c333963ed187368820c5343b355e5bc":[6,0,0,1,0,1,106],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a7fa06ead699fcbd63132370ffe13335a":[6,0,0,1,0,1,91],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a7fc56270e7a70fa81a5935b72eacbe29":[6,0,0,1,0,1,19],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a800618943025315f869e4e1f09471012":[6,0,0,1,0,1,24],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a80cdb34a10d276950f8b20b6814c9194":[6,0,0,1,0,1,117],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a810b30cdfc07fd7fff553a94b828ff78":[6,0,0,1,0,1,87],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a853f8ded7a96b5a765704974e6a3ca96":[6,0,0,1,0,1,68],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a8825bb5d58b44b72465799553acb964d":[6,0,0,1,0,1,119],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a889645d530078147e7dc69a9caadc31e":[6,0,0,1,0,1,92],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a892a245e287c163080b23db737d3c4c9":[6,0,0,1,0,1,78],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a8d9c307cb7f3c4a32822a51922d1ceaa":[6,0,0,1,0,1,32],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a91a9360a45bb242906ee86ecbf9ac7c4":[6,0,0,1,0,1,45],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a91d8d0b84f26c3e30fb064ea4fc1090f":[6,0,0,1,0,1,47],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a95dfde4807d4d6a9eec499203b3c24a0":[6,0,0,1,0,1,82],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a969f331a87d8c958473c32b4d0e61a44":[6,0,0,1,0,1,18],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a9c56f942b051ba23447e108e16a8b23b":[6,0,0,1,0,1,99],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a9d5ed678fe57bcca610140957afab571":[6,0,0,1,0,1,20],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822a9df35983f4024e31955de0f1e545e888":[6,0,0,1,0,1,2],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aa5f3c6a11b03839d46af9fb43c97c188":[6,0,0,1,0,1,29],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aa8ecc4d78b0864cd22b788de2b48921f":[6,0,0,1,0,1,13],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aabf9846f265ae3dea4bf9d740f5cb1aa":[6,0,0,1,0,1,94],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ab1a326c06d88bf042f73d70f50197905":[6,0,0,1,0,1,64],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ab213ce22ca6ad4eda8db82966b9b6e5a":[6,0,0,1,0,1,79],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ab6c7e6204e97690efd79d6f513ed5613":[6,0,0,1,0,1,112],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3":[6,0,0,1,0,1,38],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822abaaceccc27b1d4e0968c999583f97de5":[6,0,0,1,0,1,17],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822abb2cbd684a16faa1624ae1b3a4ceaa2c":[6,0,0,1,0,1,16],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822abb4e75dde7d107cc573c77dc42a7acab":[6,0,0,1,0,1,11],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ac1d9f50f86825a1a2302ec2449c17196":[6,0,0,1,0,1,26],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ac4e0e4e3118472beeb2ae75827450f1f":[6,0,0,1,0,1,59],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ac63bd90003103ca242fe9202fe10c3e9":[6,0,0,1,0,1,15],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822acb0d0bf9279e78f982deba761110e434":[6,0,0,1,0,1,67],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822acb8104ace1979f9537c7f40de0622a22":[6,0,0,1,0,1,50],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822acd7c2a221ef5d0a34acc0bcd679b2054":[6,0,0,1,0,1,88],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822acf6d2dfd5fb43f33ec09dbad7a90593c":[6,0,0,1,0,1,10],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587":[6,0,0,1,0,1,30],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822adaaedac409335b869929ea43fa44be5d":[6,0,0,1,0,1,51],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822adc271d081ca9fcbefdc42998313398d8":[6,0,0,1,0,1,100],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822add7536794b63bf90eccfd37f9b147d7f":[6,0,0,1,0,1,27],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822addf133566f544b297f2f84874c283589":[6,0,0,1,0,1,113],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ade58a28573783fe95304a260ccd90362":[6,0,0,1,0,1,5],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822adea24610606fb34c587a8fe8ed8f8389":[6,0,0,1,0,1,110],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822adfcf28d0734569a6a693bc8194de62bf":[6,0,0,1,0,1,25],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae1dffc8709f31a4987c8a88334107e89":[6,0,0,1,0,1,70],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae1e1d3d40573127e9ee0480caf1283d6":[6,0,0,1,0,1,36],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae40af1d5cc55c55ae0bb25953f7a7ee2":[6,0,0,1,0,1,65],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae53b55851b9ff4979f2c3ff434a4a138":[6,0,0,1,0,1,84],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae791d936f894ce58dd18bf603edcb9b4":[6,0,0,1,0,1,61],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae7e0e72401a9f2718ed0f39f2861d702":[6,0,0,1,0,1,73],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae902674982fc99aa343cdd94da7476c3":[6,0,0,1,0,1,81],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822ae9a23c5ce3d34b40123d65ca14b2e88f":[6,0,0,1,0,1,62],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aebd7820c520d05eca2d775c37d141273":[6,0,0,1,0,1,93],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aecb4a6f3440c2ed0dff59f17375a27c0":[6,0,0,1,0,1,46],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822af09564c9ca56850d4cd6b3319e541aee":[6,0,0,1,0,1,35],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822af186217753c37b9b9f958d906208506e":[6,0,0,1,0,1,33],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822af447f5c03508de4d88e340390ba7c78f":[6,0,0,1,0,1,121],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822af623e75af30e62bbd73d6df5b50bb7b5":[6,0,0,1,0,1,22],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822af684bf05fa3e81528c84d1d281d839f1":[6,0,0,1,0,1,53],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822afbaedde498cdead4f2780217646e9ba1":[6,0,0,1,0,1,60],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822afc335adb3d69d3d8270769e1923ea4dc":[6,0,0,1,0,1,89],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822afd816cf0346d4939b4cf3bed78dd7fde":[6,0,0,1,0,1,115],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822afdcbdc22f7e22388bf5905c290bcfe4b":[6,0,0,1,0,1,96],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822afe5c3684dce76cdd9f7f42430868aa74":[6,0,0,1,0,1,71],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822aff44570aca8241914870afbc310cdb85":[6,0,0,1,0,1,28],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822affa5882d1ddcf903bf0d0dbc30bfc604":[6,0,0,1,0,1,86],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822affb2ce8868d49c78376bf7e76c88fd52":[6,0,0,1,0,1,95],
-"input_8h.html#ad5a9307442e5daa8810aff942564a822affc0d9b54a1fe677c4c9e6b050e67c81":[6,0,0,1,0,1,4],
-"input_8h_source.html":[6,0,0,1,0],
-"iomanager_8cpp.html":[6,0,0,0,4],
-"iomanager_8h.html":[6,0,0,0,5],
-"iomanager_8h_source.html":[6,0,0,0,5],
-"logger_8cpp.html":[6,0,0,0,6],
-"logger_8h.html":[6,0,0,0,7],
-"logger_8h.html#a0061fe08a4e2d9ed843a782044d3528f":[6,0,0,0,7,1],
-"logger_8h.html#a17afd33b46d111ec5e97f20e2c667e2d":[6,0,0,0,7,5],
-"logger_8h.html#a89062c0e6f5d9d0dd34553259c0fe00e":[6,0,0,0,7,3],
-"logger_8h.html#a9055939896a9ae18d3a833c5023e98d1":[6,0,0,0,7,4],
-"logger_8h.html#ac26448787b9e07f1cf6e928e23ef9b7a":[6,0,0,0,7,6],
-"logger_8h.html#ac71f194a096b3d7b4cf4ec448ee8b87d":[6,0,0,0,7,2],
-"logger_8h_source.html":[6,0,0,0,7],
-"loglevel_8h.html":[6,0,0,0,8],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788":[6,0,0,0,8,0],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a059e9861e0400dfbe05c98a841f3f96b":[6,0,0,0,8,0,2],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a19da7170bea36556dde582519795f3fc":[6,0,0,0,8,0,4],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3":[6,0,0,0,8,0,1],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5":[6,0,0,0,8,0,3],
-"loglevel_8h.html#a4ac616fa26af17775ed558a4c08e4788adc30ec20708ef7b0f641ef78b7880a15":[6,0,0,0,8,0,0],
-"loglevel_8h_source.html":[6,0,0,0,8],
-"logmessage_8cpp.html":[6,0,0,0,9],
-"logmessage_8h.html":[6,0,0,0,10],
-"logmessage_8h_source.html":[6,0,0,0,10],
-"logsink_8cpp.html":[6,0,0,0,11],
-"logsink_8cpp.html#a6b288197f6a97f197dda60e5b54f1841":[6,0,0,0,11,2],
-"logsink_8cpp.html#ab54350a8dbf59338c99ab4f43cfa2858":[6,0,0,0,11,0],
-"logsink_8cpp.html#ad537beeea51c8314e407fadd24affc34":[6,0,0,0,11,1],
-"logsink_8cpp.html#ae3c7a5bad8dd0db0a0a9cdd60c7b53d1":[6,0,0,0,11,3],
-"logsink_8h.html":[6,0,0,0,12],
-"logsink_8h.html#a6b288197f6a97f197dda60e5b54f1841":[6,0,0,0,12,3],
-"logsink_8h.html#ab54350a8dbf59338c99ab4f43cfa2858":[6,0,0,0,12,1],
-"logsink_8h.html#ad537beeea51c8314e407fadd24affc34":[6,0,0,0,12,2],
-"logsink_8h_source.html":[6,0,0,0,12],
-"matrix_8h.html":[6,0,0,2,0],
-"matrix_8h.html#a090cbd6b767b583364e9cbe78d8a8d5a":[6,0,0,2,0,19],
-"matrix_8h.html#a12811c7f985dbbdc34e4d93a26d21763":[6,0,0,2,0,10],
-"matrix_8h.html#a1896ae5c4cfed1453dadf21a4a2a48cf":[6,0,0,2,0,14],
-"matrix_8h.html#a2187fb11298a029f2877702192717090":[6,0,0,2,0,23],
-"matrix_8h.html#a226cc29763f745fd175844f4263d5dae":[6,0,0,2,0,20],
-"matrix_8h.html#a23eef341099a6b2816cf0c63f8ffe898":[6,0,0,2,0,7],
-"matrix_8h.html#a277125ad9fa06a7119c59d350e129985":[6,0,0,2,0,17],
-"matrix_8h.html#a438e5eeb3daf58452259f7534e8818e8":[6,0,0,2,0,13],
-"matrix_8h.html#a57e09b8310398c434e9526ea5cc456ad":[6,0,0,2,0,9],
-"matrix_8h.html#a5ddd829cb1c7c4c880d0fd53326858fe":[6,0,0,2,0,28],
-"matrix_8h.html#a62de4b4b6bab23717d957c370f2e41c7":[6,0,0,2,0,29],
-"matrix_8h.html#a6455fea9bfa32e435fbf77e02ce12759":[6,0,0,2,0,15],
-"matrix_8h.html#a6b77afaa1cd077df90b9daccbfc2cbae":[6,0,0,2,0,21],
-"matrix_8h.html#a747a31edd11312cbae25ebb9ab12d5cb":[6,0,0,2,0,12],
-"matrix_8h.html#a7ed614bc9d3e8b9f3f8d32b6a7ff28eb":[6,0,0,2,0,27],
-"matrix_8h.html#a8a9db24697f649f6d19f0347330d95fe":[6,0,0,2,0,24],
-"matrix_8h.html#a947133b8fc764d9fc5c5d8b08821cf32":[6,0,0,2,0,22],
-"matrix_8h.html#ac4d2f55a5c3369ec42001776a582c30a":[6,0,0,2,0,16],
-"matrix_8h.html#acca4a23afb94173695bbc1e1f2cde2b3":[6,0,0,2,0,26],
-"matrix_8h.html#ad8903f6a93ac89f16846458540717507":[6,0,0,2,0,18],
-"matrix_8h.html#ad9344d41af72f29cd6f8cf1ef62ed3cc":[6,0,0,2,0,25],
-"matrix_8h.html#ae04792ab12e05bcb11c0316b142ebeec":[6,0,0,2,0,11],
-"matrix_8h.html#aea25e39fde2b6a8abab71cc27371d339":[6,0,0,2,0,8],
-"matrix_8h_source.html":[6,0,0,2,0],
-"md_yage_physics_README.html":[0],
-"namespacemembers.html":[4,1,0],
-"namespacemembers_enum.html":[4,1,3],
-"namespacemembers_eval.html":[4,1,4],
-"namespacemembers_func.html":[4,1,1],
-"namespacemembers_type.html":[4,1,2],
-"namespaces.html":[4,0],
-"namespaceyage.html":[4,0,0],
-"namespaceyage.html":[5,0,0],
-"namespaceyage_1_1details.html":[4,0,0,0],
-"namespaceyage_1_1details.html":[5,0,0,0],
-"namespaceyage_1_1matrix.html":[5,0,0,1],
-"namespaceyage_1_1matrix.html":[4,0,0,1],
-"pages.html":[],
-"particlebody_8cpp.html":[6,0,0,3,4],
-"particlebody_8h.html":[6,0,0,3,5],
-"particlebody_8h_source.html":[6,0,0,3,5],
-"physics_8h.html":[6,0,0,3,6],
-"physics_8h_source.html":[6,0,0,3,6],
-"rectangle_8cpp.html":[6,0,0,4,3],
-"rectangle_8h.html":[6,0,0,4,4],
-"rectangle_8h_source.html":[6,0,0,4,4],
-"rectanglecollider_8cpp.html":[6,0,0,3,7],
-"rectanglecollider_8h.html":[6,0,0,3,8],
-"rectanglecollider_8h_source.html":[6,0,0,3,8],
-"resourcemanager_8cpp.html":[6,0,0,0,13],
-"resourcemanager_8h.html":[6,0,0,0,14],
-"resourcemanager_8h_source.html":[6,0,0,0,14],
-"rigidbody_8cpp.html":[6,0,0,3,9],
-"rigidbody_8h.html":[6,0,0,3,10],
-"rigidbody_8h_source.html":[6,0,0,3,10],
-"shader_8cpp.html":[6,0,0,4,5],
-"shader_8h.html":[6,0,0,4,6]
-};
diff --git a/navtreeindex2.js b/navtreeindex2.js
deleted file mode 100644
index 4e738592..00000000
--- a/navtreeindex2.js
+++ /dev/null
@@ -1,153 +0,0 @@
-var NAVTREEINDEX2 =
-{
-"shader_8h_source.html":[6,0,0,4,6],
-"shape_8h.html":[6,0,0,4,7],
-"shape_8h_source.html":[6,0,0,4,7],
-"sprite_8cpp.html":[6,0,0,4,8],
-"sprite_8h.html":[6,0,0,4,9],
-"sprite_8h_source.html":[6,0,0,4,9],
-"spritebatch_8cpp.html":[6,0,0,4,10],
-"spritebatch_8h.html":[6,0,0,4,11],
-"spritebatch_8h_source.html":[6,0,0,4,11],
-"spritesheet_8cpp.html":[6,0,0,0,15],
-"spritesheet_8h.html":[6,0,0,0,16],
-"spritesheet_8h.html#a035f63ad1a3114ada8157ed4182521c9":[6,0,0,0,16,2],
-"spritesheet_8h_source.html":[6,0,0,0,16],
-"stb__image_8cpp.html":[6,0,0,0,17],
-"stb__image_8cpp.html#a18372412ad2fc3ce1e3240b3cf0efe78":[6,0,0,0,17,0],
-"stb__image_8h.html":[6,0,0,0,18],
-"stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27":[6,0,0,0,18,42],
-"stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029":[6,0,0,0,18,5],
-"stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf":[6,0,0,0,18,8],
-"stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293":[6,0,0,0,18,9],
-"stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa":[6,0,0,0,18,6],
-"stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8":[6,0,0,0,18,7],
-"stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e":[6,0,0,0,18,43],
-"stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb":[6,0,0,0,18,23],
-"stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b":[6,0,0,0,18,10],
-"stb__image_8h.html#a28abedef4a0a93909332080df6be0021":[6,0,0,0,18,17],
-"stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d":[6,0,0,0,18,3],
-"stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2":[6,0,0,0,18,2],
-"stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9":[6,0,0,0,18,38],
-"stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e":[6,0,0,0,18,40],
-"stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e":[6,0,0,0,18,22],
-"stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2":[6,0,0,0,18,36],
-"stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2":[6,0,0,0,18,4],
-"stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb":[6,0,0,0,18,34],
-"stb__image_8h.html#a7fbd65c83495f13f22469fe493775739":[6,0,0,0,18,44],
-"stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18":[6,0,0,0,18,27],
-"stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363":[6,0,0,0,18,16],
-"stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee":[6,0,0,0,18,26],
-"stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7":[6,0,0,0,18,29],
-"stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c":[6,0,0,0,18,31],
-"stb__image_8h.html#aa874b3ba909f3281d499894909678336":[6,0,0,0,18,11],
-"stb__image_8h.html#aa9994764695597161e8f3776e97caa99":[6,0,0,0,18,30],
-"stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79":[6,0,0,0,18,41],
-"stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524":[6,0,0,0,18,21],
-"stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e":[6,0,0,0,18,12],
-"stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4":[6,0,0,0,18,37],
-"stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f":[6,0,0,0,18,32],
-"stb__image_8h.html#ace82446ecd7b5c760cde062179660f46":[6,0,0,0,18,35],
-"stb__image_8h.html#acfef077febce3bc3f1f339de478f3315":[6,0,0,0,18,18],
-"stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a":[6,0,0,0,18,28],
-"stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb":[6,0,0,0,18,14],
-"stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258":[6,0,0,0,18,13],
-"stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c":[6,0,0,0,18,19],
-"stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48":[6,0,0,0,18,39],
-"stb__image_8h.html#aed6cd14a3bf678808c4c179e808866aa":[6,0,0,0,18,1],
-"stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70":[6,0,0,0,18,15],
-"stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048":[6,0,0,0,18,25],
-"stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077":[6,0,0,0,18,20],
-"stb__image_8h.html#af4f17acd30945a75901fdc022f90575f":[6,0,0,0,18,33],
-"stb__image_8h.html#af946583656a362a316b40c0421c20561":[6,0,0,0,18,24],
-"stb__image_8h_source.html":[6,0,0,0,18],
-"structstbi__io__callbacks.html":[5,0,1],
-"structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177":[5,0,1,0],
-"structstbi__io__callbacks.html#a73818f0a4f467e5abfefb1d635f62d82":[5,0,1,1],
-"structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83":[5,0,1,2],
-"structyage_1_1Colour.html":[5,0,0,14],
-"structyage_1_1Colour.html#a205d3a63268f4879adf27aabdf71a6dd":[5,0,0,14,4],
-"structyage_1_1Colour.html#a572fe7933c59ebfa6720088cd33dad99":[5,0,0,14,5],
-"structyage_1_1Colour.html#a585165d5109c81b6b2de6f1116406abd":[5,0,0,14,0],
-"structyage_1_1Colour.html#a5aef37a5ac37e44dc32f5f9b1ebee10c":[5,0,0,14,2],
-"structyage_1_1Colour.html#a7bd3ed4a377c384af80aa8c7f55dc96f":[5,0,0,14,3],
-"structyage_1_1Colour.html#a8118ad802db7e61df770f7d3b5b88aaa":[5,0,0,14,1],
-"structyage_1_1LogMessage_1_1Meta.html":[5,0,0,6,0],
-"structyage_1_1LogMessage_1_1Meta.html#aa265c76e7ce54e4b912e1c41333fad3b":[5,0,0,6,0,1],
-"structyage_1_1LogMessage_1_1Meta.html#ac2951995b1f4ebf28e94bcd268c3dd3c":[5,0,0,6,0,2],
-"structyage_1_1LogMessage_1_1Meta.html#ae3ef1b01f47ef6254b8aa6fce13db7c4":[5,0,0,6,0,0],
-"structyage_1_1Position.html":[5,0,0,13],
-"structyage_1_1Position.html#a41b1d5ee23c50208982ab6089708e5d2":[5,0,0,13,0],
-"structyage_1_1Position.html#a45b8cc8245d0e05bb9e482d85512ee27":[5,0,0,13,3],
-"structyage_1_1Position.html#a4f5904d6d7b22802211f0565bc9f6c91":[5,0,0,13,2],
-"structyage_1_1Position.html#aaeaa1cd93e57adcb08ef4f76513148e2":[5,0,0,13,1],
-"structyage_1_1Texture.html":[5,0,0,12],
-"structyage_1_1Texture.html#a0cef080bceaaf5e702985f5494ea35d5":[5,0,0,12,0],
-"structyage_1_1Texture.html#a26386c2709b906ec07c9a1bb8daf2968":[5,0,0,12,3],
-"structyage_1_1Texture.html#a4bfae86da1ef1930238291660223a8f0":[5,0,0,12,6],
-"structyage_1_1Texture.html#a5ce16ac8ad034f7042620a418783b41e":[5,0,0,12,2],
-"structyage_1_1Texture.html#a7ecf257a7663cb0523d41c0519380046":[5,0,0,12,5],
-"structyage_1_1Texture.html#ad42f41cc57ed7a20928382f6557dc598":[5,0,0,12,4],
-"structyage_1_1Texture.html#af0a85aa4202d12fca9c1f52085d26850":[5,0,0,12,1],
-"structyage_1_1UV.html":[5,0,0,15],
-"structyage_1_1UV.html#a414dc7aeeebf47df1a991aacbb12a793":[5,0,0,15,3],
-"structyage_1_1UV.html#aa726c11ba59a9a5edffef27ac3845053":[5,0,0,15,2],
-"structyage_1_1UV.html#ac918524789292937aae5803df3c2673f":[5,0,0,15,1],
-"structyage_1_1UV.html#ae236139f3a5f6024aac1e21bd93b7bde":[5,0,0,15,0],
-"structyage_1_1Vertex.html":[5,0,0,16],
-"structyage_1_1Vertex.html#a142db28be39f418a06fa43f75d386182":[5,0,0,16,5],
-"structyage_1_1Vertex.html#a2d1923353f0e50e7753ff1ae2d9ba84e":[5,0,0,16,7],
-"structyage_1_1Vertex.html#aa1fa8f5ebd883068828466cc924d4c50":[5,0,0,16,4],
-"structyage_1_1Vertex.html#aa759435739e34e2a0bfd1803c2aeeddf":[5,0,0,16,2],
-"structyage_1_1Vertex.html#aac3046359c44aeabc910a81f4f41789e":[5,0,0,16,1],
-"structyage_1_1Vertex.html#abefe88d26b055655f9cc038a1dd4ff6a":[5,0,0,16,6],
-"structyage_1_1Vertex.html#acae9697c2762e37dfa4472b85fa112c3":[5,0,0,16,0],
-"structyage_1_1Vertex.html#af392248f0be173221ebcc62d490fe03d":[5,0,0,16,3],
-"structyage_1_1details_1_1Coordinate.html":[5,0,0,0,0],
-"structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629":[5,0,0,0,0,0],
-"structyage_1_1details_1_1Coordinate.html#a23585afbdaa9bb742353a4c90878a941":[5,0,0,0,0,2],
-"structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a":[5,0,0,0,0,1],
-"structyage_1_1details_1_1Coordinate.html#a6d54c056ec7bd3c7ed1c6a226c2cf508":[5,0,0,0,0,5],
-"structyage_1_1details_1_1Coordinate.html#aa1a9203c0a9cd929f333bd99af634adc":[5,0,0,0,0,4],
-"structyage_1_1details_1_1Coordinate.html#aed145c923c95f852a8fb3abde8e346c0":[5,0,0,0,0,3],
-"structyage_1_1details_1_1Glyph.html":[5,0,0,0,3],
-"structyage_1_1details_1_1Glyph.html#a4dd2989e7b2a6d58dea6c85a9a1ed80d":[5,0,0,0,3,5],
-"structyage_1_1details_1_1Glyph.html#a503ba9786cf0fe3535e968b607a001da":[5,0,0,0,3,6],
-"structyage_1_1details_1_1Glyph.html#a91752b58fc10fb037658f27c9338627c":[5,0,0,0,3,0],
-"structyage_1_1details_1_1Glyph.html#a9de1d469f98aa0411f8073fdc3aa39ed":[5,0,0,0,3,2],
-"structyage_1_1details_1_1Glyph.html#aba58f02d34ba363ab3435e2328e4bfcc":[5,0,0,0,3,4],
-"structyage_1_1details_1_1Glyph.html#ac42b2ed4a9179c38196953ed32bfa056":[5,0,0,0,3,1],
-"structyage_1_1details_1_1Glyph.html#ae5398583bd0b4c1d6b334bf3902903d9":[5,0,0,0,3,3],
-"structyage_1_1details_1_1RenderBatch.html":[5,0,0,0,2],
-"structyage_1_1details_1_1RenderBatch.html#a27ed6f3911a6d7c8c2b6b4e5a5889b29":[5,0,0,0,2,1],
-"structyage_1_1details_1_1RenderBatch.html#a48f630fdb7c1a3f4eecd05996b560844":[5,0,0,0,2,0],
-"structyage_1_1details_1_1RenderBatch.html#a7f58b6967f0a68aa5624e0504c78a422":[5,0,0,0,2,2],
-"structyage_1_1details_1_1RenderBatch.html#abf26b15420f34052270a1204d89ee687":[5,0,0,0,2,3],
-"syncqueue_8h.html":[6,0,0,5,2],
-"syncqueue_8h_source.html":[6,0,0,5,2],
-"texture_8h.html":[6,0,0,1,1],
-"texture_8h_source.html":[6,0,0,1,1],
-"texturecache_8cpp.html":[6,0,0,0,19],
-"texturecache_8h.html":[6,0,0,0,20],
-"texturecache_8h_source.html":[6,0,0,0,20],
-"todo.html":[1],
-"vertex_8h.html":[6,0,0,1,2],
-"vertex_8h_source.html":[6,0,0,1,2],
-"window_8cpp.html":[6,0,0,0,21],
-"window_8h.html":[6,0,0,0,22],
-"window_8h.html#a09d41deeced5fca5df9dc680c9e77c38":[6,0,0,0,22,1],
-"window_8h.html#a09d41deeced5fca5df9dc680c9e77c38a409ae568f380139ffa38d7fffa5ffb2f":[6,0,0,0,22,1,2],
-"window_8h.html#a09d41deeced5fca5df9dc680c9e77c38a7c4273d3feb1dc60a55a74c37c3fddd6":[6,0,0,0,22,1,0],
-"window_8h.html#a09d41deeced5fca5df9dc680c9e77c38af7a4d995b268c416a6e01b8dc1555648":[6,0,0,0,22,1,1],
-"window_8h.html#a09d41deeced5fca5df9dc680c9e77c38afa8ece0eef17c604369ca69bc4b09970":[6,0,0,0,22,1,3],
-"window_8h_source.html":[6,0,0,0,22],
-"yage_8cpp.html":[6,0,0,6],
-"yage_8cpp.html#a0bd2fedcbe862fdea1ea54b6b7d49bec":[6,0,0,6,0],
-"yage_8cpp.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce":[6,0,0,6,1],
-"yage_8cpp.html#ac9d8c7327204686b3c86f4ab48672618":[6,0,0,6,2],
-"yage_8h.html":[6,0,0,7],
-"yage_8h.html#a0bd2fedcbe862fdea1ea54b6b7d49bec":[6,0,0,7,0],
-"yage_8h.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce":[6,0,0,7,1],
-"yage_8h.html#ac9d8c7327204686b3c86f4ab48672618":[6,0,0,7,2],
-"yage_8h_source.html":[6,0,0,7]
-};
diff --git a/open.png b/open.png
index 30f75c7e..ac5a1b12 100644
--- a/open.png
+++ b/open.png
Binary files differ
diff --git a/pages.html b/pages.html
index 2e2160e9..fc1160c0 100644
--- a/pages.html
+++ b/pages.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -69,20 +63,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
</div>
</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('pages.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -104,21 +84,23 @@ $(document).ready(function(){initNavTree('pages.html','');});
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_yage_physics_README.html" target="_self">Physics Engine</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="todo.html" target="_self">Todo List</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="bug.html" target="_self">Bug List</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="logger_guide.html" target="_self">Logger</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="matrix_guide.html" target="_self">Matrix Guide</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="spritebatch_guide.html" target="_self">Sprite Batching</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_docs_todolist.html" target="_self">Add Comments</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_yage_physics_README.html" target="_self">Physics Engine</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_README.html" target="_self">YAGE</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="todo.html" target="_self">Todo List</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="bug.html" target="_self">Bug List</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/particlebody_8cpp.html b/particlebody_8cpp.html
index dda09c65..ddc3a966 100644
--- a/particlebody_8cpp.html
+++ b/particlebody_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('particlebody_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('particlebody_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -121,7 +105,7 @@ $(document).ready(function(){initNavTree('particlebody_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -129,15 +113,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="particlebody_8cpp.html">particlebody.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/particlebody_8h.html b/particlebody_8h.html
index 53354ceb..08e20f59 100644
--- a/particlebody_8h.html
+++ b/particlebody_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('particlebody_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('particlebody_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="particlebody_8h.html">particlebody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/particlebody_8h_source.html b/particlebody_8h_source.html
index f0baef88..c5a73762 100644
--- a/particlebody_8h_source.html
+++ b/particlebody_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('particlebody_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('particlebody_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">particlebody.h</div> </div>
@@ -143,15 +127,11 @@ $(document).ready(function(){initNavTree('particlebody_8h_source.html','');});
<div class="ttc" id="namespaceyage_html_a23eef341099a6b2816cf0c63f8ffe898"><div class="ttname"><a href="namespaceyage.html#a23eef341099a6b2816cf0c63f8ffe898">yage::Vector2d</a></div><div class="ttdeci">Vector2&lt; double &gt; Vector2d</div><div class="ttdoc">Definition of a 2D vector. </div><div class="ttdef"><b>Definition:</b> matrix.h:398</div></div>
<div class="ttc" id="classyage_1_1ParticleBody_html_a1f24ef00fd59254397d677d90936ec4c"><div class="ttname"><a href="classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c">yage::ParticleBody::update</a></div><div class="ttdeci">void update() override</div><div class="ttdef"><b>Definition:</b> particlebody.cpp:28</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="particlebody_8h.html">particlebody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/physics_8h.html b/physics_8h.html
index dc9e5730..d9121e59 100644
--- a/physics_8h.html
+++ b/physics_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('physics_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('physics_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">physics.h File Reference</div> </div>
@@ -125,15 +109,11 @@ $(document).ready(function(){initNavTree('physics_8h.html','');});
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="physics_8h.html">physics.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/physics_8h_source.html b/physics_8h_source.html
index 391aad46..77027f4c 100644
--- a/physics_8h_source.html
+++ b/physics_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('physics_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('physics_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">physics.h</div> </div>
@@ -127,15 +111,11 @@ $(document).ready(function(){initNavTree('physics_8h_source.html','');});
<div class="ttc" id="collider_8h_html"><div class="ttname"><a href="collider_8h.html">collider.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="particlebody_8h_html"><div class="ttname"><a href="particlebody_8h.html">particlebody.h</a></div><div class="ttdoc"> </div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="physics_8h.html">physics.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectangle_8cpp.html b/rectangle_8cpp.html
index 1c79d3ca..dfaed42d 100644
--- a/rectangle_8cpp.html
+++ b/rectangle_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectangle_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rectangle_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -110,6 +94,10 @@ $(document).ready(function(){initNavTree('rectangle_8cpp.html','');});
<div class="title">rectangle.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="rectangle_8h_source.html">rectangle.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="vertex_8h_source.html">../data/vertex.h</a>&quot;</code><br/>
<code>#include &lt;glad/glad.h&gt;</code><br/>
@@ -118,19 +106,19 @@ $(document).ready(function(){initNavTree('rectangle_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="rectangle_8cpp.html">rectangle.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectangle_8h.html b/rectangle_8h.html
index 2582391c..5c8fdaa0 100644
--- a/rectangle_8h.html
+++ b/rectangle_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectangle_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rectangle_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -111,6 +95,10 @@ $(document).ready(function(){initNavTree('rectangle_8h.html','');});
<div class="title">rectangle.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="shape_8h_source.html">shape.h</a>&quot;</code><br/>
<code>#include &lt;glm/glm.hpp&gt;</code><br/>
</div>
@@ -124,19 +112,19 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="rectangle_8h.html">rectangle.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectangle_8h_source.html b/rectangle_8h_source.html
index 365923a3..4def4d99 100644
--- a/rectangle_8h_source.html
+++ b/rectangle_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectangle_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,49 +82,51 @@ $(document).ready(function(){initNavTree('rectangle_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">rectangle.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="rectangle_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_RECTANGLE_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_RECTANGLE_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="shape_8h.html">shape.h</a>&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span>yage</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classyage_1_1Rectangle.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Rectangle.html">Rectangle</a> : <span class="keyword">public</span> <a class="code" href="classyage_1_1Shape.html">Shape</a></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e">Rectangle</a>(glm::vec4 position);</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891">render</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; glm::vec4 position_;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;};</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;} <span class="comment">// namespace yage</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="classyage_1_1Shape_html"><div class="ttname"><a href="classyage_1_1Shape.html">yage::Shape</a></div><div class="ttdef"><b>Definition:</b> shape.h:9</div></div>
-<div class="ttc" id="classyage_1_1Rectangle_html_af9ff615160254c8289e502fac8124891"><div class="ttname"><a href="classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891">yage::Rectangle::render</a></div><div class="ttdeci">virtual void render() const </div><div class="ttdef"><b>Definition:</b> rectangle.cpp:14</div></div>
-<div class="ttc" id="classyage_1_1Rectangle_html"><div class="ttname"><a href="classyage_1_1Rectangle.html">yage::Rectangle</a></div><div class="ttdef"><b>Definition:</b> rectangle.h:11</div></div>
-<div class="ttc" id="classyage_1_1Rectangle_html_a45a3203b887ffcdb6a0bc7f5a4de717e"><div class="ttname"><a href="classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e">yage::Rectangle::Rectangle</a></div><div class="ttdeci">Rectangle(glm::vec4 position)</div><div class="ttdef"><b>Definition:</b> rectangle.cpp:12</div></div>
-<div class="ttc" id="shape_8h_html"><div class="ttname"><a href="shape_8h.html">shape.h</a></div></div>
+<a href="rectangle_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_RECTANGLE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_RECTANGLE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="shape_8h.html">shape.h</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classyage_1_1Rectangle.html"> 19</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Rectangle.html">Rectangle</a> : <span class="keyword">public</span> <a class="code" href="classyage_1_1Shape.html">Shape</a></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e">Rectangle</a>(glm::vec4 position);</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891">render</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; glm::vec4 position_;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1Shape_html"><div class="ttname"><a href="classyage_1_1Shape.html">yage::Shape</a></div><div class="ttdef"><b>Definition:</b> shape.h:17</div></div>
+<div class="ttc" id="classyage_1_1Rectangle_html_af9ff615160254c8289e502fac8124891"><div class="ttname"><a href="classyage_1_1Rectangle.html#af9ff615160254c8289e502fac8124891">yage::Rectangle::render</a></div><div class="ttdeci">virtual void render() const </div><div class="ttdef"><b>Definition:</b> rectangle.cpp:22</div></div>
+<div class="ttc" id="classyage_1_1Rectangle_html"><div class="ttname"><a href="classyage_1_1Rectangle.html">yage::Rectangle</a></div><div class="ttdef"><b>Definition:</b> rectangle.h:19</div></div>
+<div class="ttc" id="classyage_1_1Rectangle_html_a45a3203b887ffcdb6a0bc7f5a4de717e"><div class="ttname"><a href="classyage_1_1Rectangle.html#a45a3203b887ffcdb6a0bc7f5a4de717e">yage::Rectangle::Rectangle</a></div><div class="ttdeci">Rectangle(glm::vec4 position)</div><div class="ttdef"><b>Definition:</b> rectangle.cpp:20</div></div>
+<div class="ttc" id="shape_8h_html"><div class="ttname"><a href="shape_8h.html">shape.h</a></div><div class="ttdoc"> </div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="rectangle_8h.html">rectangle.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectanglecollider_8cpp.html b/rectanglecollider_8cpp.html
index 2851c3e7..9b77f5cd 100644
--- a/rectanglecollider_8cpp.html
+++ b/rectanglecollider_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectanglecollider_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rectanglecollider_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -119,7 +103,7 @@ $(document).ready(function(){initNavTree('rectanglecollider_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -127,15 +111,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rectanglecollider_8cpp.html">rectanglecollider.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectanglecollider_8h.html b/rectanglecollider_8h.html
index d1290754..d2835201 100644
--- a/rectanglecollider_8h.html
+++ b/rectanglecollider_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectanglecollider_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rectanglecollider_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rectanglecollider_8h.html">rectanglecollider.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rectanglecollider_8h_source.html b/rectanglecollider_8h_source.html
index 252c9b9b..44c3e974 100644
--- a/rectanglecollider_8h_source.html
+++ b/rectanglecollider_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rectanglecollider_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rectanglecollider_8h_source.html','');
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">rectanglecollider.h</div> </div>
@@ -138,15 +122,11 @@ $(document).ready(function(){initNavTree('rectanglecollider_8h_source.html','');
<div class="ttc" id="collider_8h_html"><div class="ttname"><a href="collider_8h.html">collider.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="classyage_1_1Collider_html"><div class="ttname"><a href="classyage_1_1Collider.html">yage::Collider</a></div><div class="ttdef"><b>Definition:</b> collider.h:19</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rectanglecollider_8h.html">rectanglecollider.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/resize.js b/resize.js
deleted file mode 100644
index 304fcb6b..00000000
--- a/resize.js
+++ /dev/null
@@ -1,97 +0,0 @@
-var cookie_namespace = 'doxygen';
-var sidenav,navtree,content,header;
-
-function readCookie(cookie)
-{
- var myCookie = cookie_namespace+"_"+cookie+"=";
- if (document.cookie)
- {
- var index = document.cookie.indexOf(myCookie);
- if (index != -1)
- {
- var valStart = index + myCookie.length;
- var valEnd = document.cookie.indexOf(";", valStart);
- if (valEnd == -1)
- {
- valEnd = document.cookie.length;
- }
- var val = document.cookie.substring(valStart, valEnd);
- return val;
- }
- }
- return 0;
-}
-
-function writeCookie(cookie, val, expiration)
-{
- if (val==undefined) return;
- if (expiration == null)
- {
- var date = new Date();
- date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
- expiration = date.toGMTString();
- }
- document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
-}
-
-function resizeWidth()
-{
- var windowWidth = $(window).width() + "px";
- var sidenavWidth = $(sidenav).outerWidth();
- content.css({marginLeft:parseInt(sidenavWidth)+"px"});
- writeCookie('width',sidenavWidth, null);
-}
-
-function restoreWidth(navWidth)
-{
- var windowWidth = $(window).width() + "px";
- content.css({marginLeft:parseInt(navWidth)+6+"px"});
- sidenav.css({width:navWidth + "px"});
-}
-
-function resizeHeight()
-{
- var headerHeight = header.outerHeight();
- var footerHeight = footer.outerHeight();
- var windowHeight = $(window).height() - headerHeight - footerHeight;
- content.css({height:windowHeight + "px"});
- navtree.css({height:windowHeight + "px"});
- sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
-}
-
-function initResizable()
-{
- header = $("#top");
- sidenav = $("#side-nav");
- content = $("#doc-content");
- navtree = $("#nav-tree");
- footer = $("#nav-path");
- $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
- $(window).resize(function() { resizeHeight(); });
- var width = readCookie('width');
- if (width) { restoreWidth(width); } else { resizeWidth(); }
- resizeHeight();
- var url = location.href;
- var i=url.indexOf("#");
- if (i>=0) window.location.hash=url.substr(i);
- var _preventDefault = function(evt) { evt.preventDefault(); };
- $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
- $(document).bind('touchmove',function(e){
- var device = navigator.userAgent.toLowerCase();
- var ios = device.match(/(iphone|ipod|ipad)/);
- if (ios) {
- try {
- var target = e.target;
- while (target) {
- if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
- target = target.parentNode;
- }
- e.preventDefault();
- } catch(err) {
- e.preventDefault();
- }
- }
- });
-}
-
-
diff --git a/resourcemanager_8cpp.html b/resourcemanager_8cpp.html
index 5da67abb..9c2d9fde 100644
--- a/resourcemanager_8cpp.html
+++ b/resourcemanager_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('resourcemanager_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('resourcemanager_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -120,7 +104,7 @@ $(document).ready(function(){initNavTree('resourcemanager_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -128,15 +112,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="resourcemanager_8cpp.html">resourcemanager.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/resourcemanager_8h.html b/resourcemanager_8h.html
index fcf4601a..b3edc88c 100644
--- a/resourcemanager_8h.html
+++ b/resourcemanager_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('resourcemanager_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('resourcemanager_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="resourcemanager_8h.html">resourcemanager.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/resourcemanager_8h_source.html b/resourcemanager_8h_source.html
index 1f94e244..99dc684b 100644
--- a/resourcemanager_8h_source.html
+++ b/resourcemanager_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('resourcemanager_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('resourcemanager_8h_source.html','');})
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">resourcemanager.h</div> </div>
@@ -140,15 +124,11 @@ $(document).ready(function(){initNavTree('resourcemanager_8h_source.html','');})
<div class="ttc" id="classyage_1_1TextureCache_html"><div class="ttname"><a href="classyage_1_1TextureCache.html">yage::TextureCache</a></div><div class="ttdef"><b>Definition:</b> texturecache.h:19</div></div>
<div class="ttc" id="classyage_1_1ResourceManager_html_aec533f266d9b432050faed301f4191dc"><div class="ttname"><a href="classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc">yage::ResourceManager::getTexture</a></div><div class="ttdeci">static Texture getTexture(const std::string &amp;texture_path, int x=1, int y=1)</div><div class="ttdef"><b>Definition:</b> resourcemanager.cpp:17</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="resourcemanager_8h.html">resourcemanager.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rigidbody_8cpp.html b/rigidbody_8cpp.html
index fd68536f..4bf93188 100644
--- a/rigidbody_8cpp.html
+++ b/rigidbody_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rigidbody_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rigidbody_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -119,7 +103,7 @@ $(document).ready(function(){initNavTree('rigidbody_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -127,15 +111,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rigidbody_8cpp.html">rigidbody.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rigidbody_8h.html b/rigidbody_8h.html
index 47073f55..2ac1fa7d 100644
--- a/rigidbody_8h.html
+++ b/rigidbody_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rigidbody_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rigidbody_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rigidbody_8h.html">rigidbody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/rigidbody_8h_source.html b/rigidbody_8h_source.html
index 7d452b30..8fd1862a 100644
--- a/rigidbody_8h_source.html
+++ b/rigidbody_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('rigidbody_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('rigidbody_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">rigidbody.h</div> </div>
@@ -136,15 +120,11 @@ $(document).ready(function(){initNavTree('rigidbody_8h_source.html','');});
<div class="ttc" id="namespaceyage_html_a23eef341099a6b2816cf0c63f8ffe898"><div class="ttname"><a href="namespaceyage.html#a23eef341099a6b2816cf0c63f8ffe898">yage::Vector2d</a></div><div class="ttdeci">Vector2&lt; double &gt; Vector2d</div><div class="ttdoc">Definition of a 2D vector. </div><div class="ttdef"><b>Definition:</b> matrix.h:398</div></div>
<div class="ttc" id="particlebody_8h_html"><div class="ttname"><a href="particlebody_8h.html">particlebody.h</a></div><div class="ttdoc"> </div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_a58d7658bbcfd3d3d7296185ebe55c28.html">physics</a></li><li class="navelem"><a class="el" href="rigidbody_8h.html">rigidbody.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/search/all_0.js b/search/all_0.js
index 5f5a017c..0ce2f521 100644
--- a/search/all_0.js
+++ b/search/all_0.js
@@ -7,6 +7,8 @@ var searchData=
['active_2ecpp',['active.cpp',['../active_8cpp.html',1,'']]],
['active_2eh',['active.h',['../active_8h.html',1,'']]],
['add',['add',['../classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd',1,'yage::Logger']]],
+ ['addsystem',['addSystem',['../classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6',1,'yage::Engine']]],
['apostrophe',['APOSTROPHE',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a9df35983f4024e31955de0f1e545e888',1,'yage']]],
- ['applyforce',['applyForce',['../classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878',1,'yage::Body::applyForce()'],['../classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b',1,'yage::ParticleBody::applyForce()']]]
+ ['applyforce',['applyForce',['../classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878',1,'yage::Body::applyForce()'],['../classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b',1,'yage::ParticleBody::applyForce()']]],
+ ['add_20comments',['Add Comments',['../md_docs_todolist.html',1,'']]]
];
diff --git a/search/all_12.js b/search/all_12.js
index 6dcf5bd4..885b2d7a 100644
--- a/search/all_12.js
+++ b/search/all_12.js
@@ -9,8 +9,8 @@ var searchData=
['setposition',['setPosition',['../structyage_1_1Vertex.html#af392248f0be173221ebcc62d490fe03d',1,'yage::Vertex']]],
['setuniform',['setUniform',['../classyage_1_1Shader.html#ac9bff8500e2adfa1745c843bc612f215',1,'yage::Shader::setUniform(const std::string &amp;name, int value) const '],['../classyage_1_1Shader.html#a1a637a37d3e72fe1cd53602e80ab23ab',1,'yage::Shader::setUniform(const std::string &amp;name, float value) const '],['../classyage_1_1Shader.html#a96c50a15f45d064f43d1f01e84105e78',1,'yage::Shader::setUniform(const std::string &amp;name, const glm::mat4 &amp;matrix) const ']]],
['setuv',['setUv',['../structyage_1_1Vertex.html#aa1fa8f5ebd883068828466cc924d4c50',1,'yage::Vertex']]],
- ['shader',['Shader',['../classyage_1_1Shader.html',1,'yage']]],
['shader',['Shader',['../classyage_1_1Shader.html#a34fe30eb6e6d595c1996e8ea6fb3961a',1,'yage::Shader::Shader(const std::string &amp;vertex_path, const std::string &amp;fragment_path)'],['../classyage_1_1Shader.html#a1a006dcb52a4fb9f1dc61df68d3676f5',1,'yage::Shader::Shader(const Shader &amp;)=delete'],['../classyage_1_1Shader.html#adf6dc3a526921d62b55a552f38958dd2',1,'yage::Shader::Shader(Shader &amp;&amp;)=delete']]],
+ ['shader',['Shader',['../classyage_1_1Shader.html',1,'yage']]],
['shader_2ecpp',['shader.cpp',['../shader_8cpp.html',1,'']]],
['shader_2eh',['shader.h',['../shader_8h.html',1,'']]],
['shape',['Shape',['../classyage_1_1Shape.html',1,'yage']]],
@@ -21,15 +21,20 @@ var searchData=
['size_5f',['size_',['../classyage_1_1Collider.html#ad7456f84c1acb4fd9ee0ea67c8ee7308',1,'yage::Collider']]],
['skip',['skip',['../structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83',1,'stbi_io_callbacks']]],
['slash',['SLASH',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a646da671ca01bb5d84dbb5fb2238dc8e',1,'yage']]],
- ['space',['SPACE',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a6506ae39fdca9845e3a6de3865183e57',1,'yage']]],
- ['sprite',['Sprite',['../classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987',1,'yage::Sprite::Sprite()=default'],['../classyage_1_1Sprite.html#aa5a7958e17f1d042226b91fb1829642e',1,'yage::Sprite::Sprite(const Sprite &amp;)=delete'],['../classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1',1,'yage::Sprite::Sprite(Sprite &amp;&amp;)=delete'],['../classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0',1,'yage::SpriteSheet::sprite()']]],
+ ['space',['Space',['../classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9',1,'yage::Space::Space()'],['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a6506ae39fdca9845e3a6de3865183e57',1,'yage::SPACE()']]],
+ ['space',['Space',['../classyage_1_1Space.html',1,'yage']]],
+ ['space_2ecpp',['space.cpp',['../space_8cpp.html',1,'']]],
+ ['space_2eh',['space.h',['../space_8h.html',1,'']]],
['sprite',['Sprite',['../classyage_1_1Sprite.html',1,'yage']]],
+ ['sprite',['Sprite',['../classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987',1,'yage::Sprite::Sprite()=default'],['../classyage_1_1Sprite.html#aa5a7958e17f1d042226b91fb1829642e',1,'yage::Sprite::Sprite(const Sprite &amp;)=delete'],['../classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1',1,'yage::Sprite::Sprite(Sprite &amp;&amp;)=delete'],['../classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0',1,'yage::SpriteSheet::sprite()']]],
['sprite_2ecpp',['sprite.cpp',['../sprite_8cpp.html',1,'']]],
['sprite_2eh',['sprite.h',['../sprite_8h.html',1,'']]],
['spritebatch',['SpriteBatch',['../classyage_1_1SpriteBatch.html#afda50a8a2a6c9ffd1b9d962fae223f8a',1,'yage::SpriteBatch::SpriteBatch()'],['../classyage_1_1SpriteBatch.html#a30a46a7182235a739916d540781af652',1,'yage::SpriteBatch::SpriteBatch(const SpriteBatch &amp;)=delete'],['../classyage_1_1SpriteBatch.html#a7f18a506f4188acd2219da8147dc0e1e',1,'yage::SpriteBatch::SpriteBatch(SpriteBatch &amp;&amp;)=delete']]],
['spritebatch',['SpriteBatch',['../classyage_1_1SpriteBatch.html',1,'yage']]],
['spritebatch_2ecpp',['spritebatch.cpp',['../spritebatch_8cpp.html',1,'']]],
['spritebatch_2eh',['spritebatch.h',['../spritebatch_8h.html',1,'']]],
+ ['spritebatch_2emd',['spritebatch.md',['../spritebatch_8md.html',1,'']]],
+ ['sprite_20batching',['Sprite Batching',['../spritebatch_guide.html',1,'']]],
['spritemap',['SpriteMap',['../namespaceyage_1_1details.html#a035f63ad1a3114ada8157ed4182521c9',1,'yage::details']]],
['spritesheet',['SpriteSheet',['../classyage_1_1SpriteSheet.html#a73db999ab17c4846f036eb47470176f6',1,'yage::SpriteSheet']]],
['spritesheet',['SpriteSheet',['../classyage_1_1SpriteSheet.html',1,'yage']]],
@@ -84,8 +89,10 @@ var searchData=
['stbi_5fzlib_5fdecode_5fnoheader_5fmalloc',['stbi_zlib_decode_noheader_malloc',['../stb__image_8h.html#a7fbd65c83495f13f22469fe493775739',1,'stb_image.h']]],
['stbidef',['STBIDEF',['../stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2',1,'stb_image.h']]],
['swapbuffer',['swapBuffer',['../classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359',1,'yage::Window']]],
- ['syncqueue',['SyncQueue',['../classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b',1,'yage::SyncQueue::SyncQueue()=default'],['../classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c',1,'yage::SyncQueue::SyncQueue(const SyncQueue &amp;)=delete']]],
['syncqueue',['SyncQueue',['../classyage_1_1SyncQueue.html',1,'yage']]],
+ ['syncqueue',['SyncQueue',['../classyage_1_1SyncQueue.html#a0c8aa1c22e3e6d5094dbdeb88cff426b',1,'yage::SyncQueue::SyncQueue()=default'],['../classyage_1_1SyncQueue.html#a8f42b9b34c6495680aade2563cc2359c',1,'yage::SyncQueue::SyncQueue(const SyncQueue &amp;)=delete']]],
['syncqueue_2eh',['syncqueue.h',['../syncqueue_8h.html',1,'']]],
- ['syncqueue_3c_20callback_20_3e',['SyncQueue&lt; Callback &gt;',['../classyage_1_1SyncQueue.html',1,'yage']]]
+ ['syncqueue_3c_20callback_20_3e',['SyncQueue&lt; Callback &gt;',['../classyage_1_1SyncQueue.html',1,'yage']]],
+ ['system',['System',['../classyage_1_1System.html',1,'yage']]],
+ ['system_2eh',['system.h',['../system_8h.html',1,'']]]
];
diff --git a/search/all_13.js b/search/all_13.js
index 3356493e..d7c7fb17 100644
--- a/search/all_13.js
+++ b/search/all_13.js
@@ -10,7 +10,7 @@ var searchData=
['texturecache_2ecpp',['texturecache.cpp',['../texturecache_8cpp.html',1,'']]],
['texturecache_2eh',['texturecache.h',['../texturecache_8h.html',1,'']]],
['todo_20list',['Todo List',['../todo.html',1,'']]],
- ['todolist_2edox',['todolist.dox',['../todolist_8dox.html',1,'']]],
+ ['todolist_2emd',['todolist.md',['../todolist_8md.html',1,'']]],
['top_5fleft',['top_left',['../structyage_1_1details_1_1Glyph.html#a4dd2989e7b2a6d58dea6c85a9a1ed80d',1,'yage::details::Glyph']]],
['top_5fright',['top_right',['../structyage_1_1details_1_1Glyph.html#a503ba9786cf0fe3535e968b607a001da',1,'yage::details::Glyph']]],
['tostring',['toString',['../classyage_1_1Matrix.html#a07678d7007e89487c7168df84f2a4fa8',1,'yage::Matrix::toString()'],['../classyage_1_1Vector.html#a956f7b6d02c0309adece311f59c8beae',1,'yage::Vector::toString()']]],
diff --git a/search/all_14.js b/search/all_14.js
index de79f614..ef0528c3 100644
--- a/search/all_14.js
+++ b/search/all_14.js
@@ -3,7 +3,7 @@ var searchData=
['u',['u',['../structyage_1_1UV.html#aa726c11ba59a9a5edffef27ac3845053',1,'yage::UV::u()'],['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a4c614360da93c0a041b22e537de151eb',1,'yage::U()']]],
['unknown',['UNKNOWN',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a696b031073e74bf2cb98e5ef201d4aa3',1,'yage']]],
['up',['UP',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822afbaedde498cdead4f2780217646e9ba1',1,'yage']]],
- ['update',['update',['../classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c',1,'yage::Camera::update()'],['../classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36',1,'yage::Body::update()'],['../classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c',1,'yage::ParticleBody::update()']]],
+ ['update',['update',['../classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c',1,'yage::Camera::update()'],['../classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67',1,'yage::Engine::update()'],['../classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff',1,'yage::System::update()'],['../classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36',1,'yage::Body::update()'],['../classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c',1,'yage::ParticleBody::update()']]],
['use',['use',['../classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c',1,'yage::Shader']]],
['uv',['uv',['../structyage_1_1Vertex.html#a2d1923353f0e50e7753ff1ae2d9ba84e',1,'yage::Vertex::uv()'],['../structyage_1_1UV.html#ae236139f3a5f6024aac1e21bd93b7bde',1,'yage::UV::UV()=default'],['../structyage_1_1UV.html#ac918524789292937aae5803df3c2673f',1,'yage::UV::UV(float u_, float v_)']]],
['uv',['UV',['../structyage_1_1UV.html',1,'yage']]]
diff --git a/search/all_18.js b/search/all_18.js
index 35ffa9f5..81a6f12a 100644
--- a/search/all_18.js
+++ b/search/all_18.js
@@ -3,6 +3,7 @@ var searchData=
['details',['details',['../namespaceyage_1_1details.html',1,'yage']]],
['yage',['YAGE',['../index.html',1,'']]],
['matrix',['matrix',['../namespaceyage_1_1matrix.html',1,'yage']]],
+ ['yage',['YAGE',['../md_README.html',1,'']]],
['y',['y',['../structyage_1_1details_1_1Coordinate.html#a6d54c056ec7bd3c7ed1c6a226c2cf508',1,'yage::details::Coordinate::y()'],['../structyage_1_1Texture.html#a4bfae86da1ef1930238291660223a8f0',1,'yage::Texture::y()'],['../structyage_1_1Position.html#a45b8cc8245d0e05bb9e482d85512ee27',1,'yage::Position::y()'],['../classyage_1_1Vector3.html#a3076edb39227c1fcc77a8160fb9c5832',1,'yage::Vector3::y()'],['../classyage_1_1Vector4.html#ae0609f2db5e14fe05fddd71ec09f4735',1,'yage::Vector4::y()'],['../classyage_1_1Vector2.html#a554645b415a76af47698985b7757f0c2',1,'yage::Vector2::y()'],['../classyage_1_1Vector2.html#a216ac57d39572b46ab8307a7728e4456',1,'yage::Vector2::y() const '],['../classyage_1_1Vector3.html#a9b984c33ac0a7d7ade6963baea0e5ee8',1,'yage::Vector3::y()'],['../classyage_1_1Vector4.html#a0c7bf86ba48c9bda10e0605441bb8c3c',1,'yage::Vector4::y()'],['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a57cec4137b614c87cb4e24a3d003a3e0',1,'yage::Y()']]],
['yage',['yage',['../namespaceyage.html',1,'']]],
['yage_2ecpp',['yage.cpp',['../yage_8cpp.html',1,'']]],
diff --git a/search/all_1a.js b/search/all_1a.js
index 4a39058c..650b6532 100644
--- a/search/all_1a.js
+++ b/search/all_1a.js
@@ -6,5 +6,6 @@ var searchData=
['_7eshader',['~Shader',['../classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd',1,'yage::Shader']]],
['_7esprite',['~Sprite',['../classyage_1_1Sprite.html#aa2f833e040940616fa17ee8f02f8cab2',1,'yage::Sprite']]],
['_7espritebatch',['~SpriteBatch',['../classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a',1,'yage::SpriteBatch']]],
+ ['_7esystem',['~System',['../classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57',1,'yage::System']]],
['_7ewindow',['~Window',['../classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0',1,'yage::Window']]]
];
diff --git a/search/all_2.js b/search/all_2.js
index b2866051..e9d50262 100644
--- a/search/all_2.js
+++ b/search/all_2.js
@@ -17,10 +17,15 @@ var searchData=
['collisionbody',['CollisionBody',['../classyage_1_1CollisionBody.html',1,'yage']]],
['collisionbody_2eh',['collisionbody.h',['../collisionbody_8h.html',1,'']]],
['colour',['Colour',['../structyage_1_1Colour.html',1,'yage']]],
- ['colour',['colour',['../structyage_1_1Vertex.html#a142db28be39f418a06fa43f75d386182',1,'yage::Vertex::colour()'],['../structyage_1_1Colour.html#a585165d5109c81b6b2de6f1116406abd',1,'yage::Colour::Colour()'],['../structyage_1_1Colour.html#a8118ad802db7e61df770f7d3b5b88aaa',1,'yage::Colour::Colour(GLubyte r_, GLubyte g_, GLubyte b_, GLubyte a_)']]],
+ ['colour',['Colour',['../structyage_1_1Colour.html#a585165d5109c81b6b2de6f1116406abd',1,'yage::Colour::Colour()'],['../structyage_1_1Colour.html#a8118ad802db7e61df770f7d3b5b88aaa',1,'yage::Colour::Colour(GLubyte r_, GLubyte g_, GLubyte b_, GLubyte a_)'],['../structyage_1_1Vertex.html#a142db28be39f418a06fa43f75d386182',1,'yage::Vertex::colour()']]],
['colsize',['colSize',['../classyage_1_1Matrix.html#a2148cd52008892765ad90250c68afba1',1,'yage::Matrix']]],
['comma',['COMMA',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a4d9b3e9fc12849d060371eb65154c751',1,'yage']]],
- ['coordinate',['Coordinate',['../structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629',1,'yage::details::Coordinate::Coordinate()=default'],['../structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a',1,'yage::details::Coordinate::Coordinate(int x_i, int y_i, int width_i, int height_i)']]],
+ ['component',['Component',['../classComponent.html',1,'']]],
+ ['component_2eh',['component.h',['../component_8h.html',1,'']]],
+ ['componentenum',['ComponentEnum',['../component_8h.html#a265b76591becf42b342804bbc4a79507',1,'component.h']]],
['coordinate',['Coordinate',['../structyage_1_1details_1_1Coordinate.html',1,'yage::details']]],
- ['create',['create',['../classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745',1,'yage::Window::create()'],['../classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064',1,'yage::Active::create()']]]
+ ['coordinate',['Coordinate',['../structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629',1,'yage::details::Coordinate::Coordinate()=default'],['../structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a',1,'yage::details::Coordinate::Coordinate(int x_i, int y_i, int width_i, int height_i)']]],
+ ['create',['create',['../classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745',1,'yage::Window::create()'],['../classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064',1,'yage::Active::create()']]],
+ ['createentity',['createEntity',['../classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b',1,'yage::EntityManager::createEntity()'],['../classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4',1,'yage::Space::createEntity()']]],
+ ['createentityinstance',['createEntityInstance',['../classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de',1,'yage::EntityManager']]]
];
diff --git a/search/all_4.js b/search/all_4.js
index 42a1767c..04efa775 100644
--- a/search/all_4.js
+++ b/search/all_4.js
@@ -3,7 +3,18 @@ var searchData=
['e',['E',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a3a3ea00cfc35332cedf6e5e9a32e94da',1,'yage']]],
['ellipse_2eh',['ellipse.h',['../ellipse_8h.html',1,'']]],
['end',['end',['../classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851',1,'yage::Matrix::end()'],['../classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e',1,'yage::Batch::end()'],['../classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632',1,'yage::SpriteBatch::end()'],['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822ab1a326c06d88bf042f73d70f50197905',1,'yage::END()']]],
+ ['engine',['Engine',['../classyage_1_1Engine.html',1,'yage']]],
+ ['engine_2ecpp',['engine.cpp',['../engine_8cpp.html',1,'']]],
+ ['engine_2eh',['engine.h',['../engine_8h.html',1,'']]],
['enter',['ENTER',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a331b3100a485d8cacff1d3df8e9b0c13',1,'yage']]],
+ ['entity',['Entity',['../classyage_1_1Entity.html',1,'yage']]],
+ ['entity',['Entity',['../classyage_1_1Entity.html#a046099f19b3483140505938769276d8a',1,'yage::Entity']]],
+ ['entity_2ecpp',['entity.cpp',['../entity_8cpp.html',1,'']]],
+ ['entity_2eh',['entity.h',['../entity_8h.html',1,'']]],
+ ['entitymanager',['EntityManager',['../classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8',1,'yage::EntityManager::EntityManager()=default'],['../classyage_1_1EntityManager.html#a0099fe0038967007891d2b7575090915',1,'yage::EntityManager::EntityManager(Space *space)'],['../classyage_1_1EntityManager.html#af1644095d96e43ac000375ba7f7ee021',1,'yage::EntityManager::EntityManager(Space *space, std::size_t n)']]],
+ ['entitymanager',['EntityManager',['../classyage_1_1EntityManager.html',1,'yage']]],
+ ['entitymanager_2ecpp',['entitymanager.cpp',['../entitymanager_8cpp.html',1,'']]],
+ ['entitymanager_2eh',['entitymanager.h',['../entitymanager_8h.html',1,'']]],
['eof',['eof',['../structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177',1,'stbi_io_callbacks']]],
['equal',['EQUAL',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a969f331a87d8c958473c32b4d0e61a44',1,'yage']]],
['error',['ERROR',['../namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788abb1ca97ec761fc37101737ba0aa2e7c5',1,'yage']]],
diff --git a/search/all_6.js b/search/all_6.js
index 9c37fbe7..0b5793c3 100644
--- a/search/all_6.js
+++ b/search/all_6.js
@@ -2,13 +2,14 @@ var searchData=
[
['g',['g',['../structyage_1_1Colour.html#a205d3a63268f4879adf27aabdf71a6dd',1,'yage::Colour::g()'],['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822adfcf28d0734569a6a693bc8194de62bf',1,'yage::G()']]],
['getcol',['getCol',['../classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b',1,'yage::Matrix']]],
+ ['gethandle',['getHandle',['../classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71',1,'yage::Entity']]],
['getrow',['getRow',['../classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8',1,'yage::Matrix']]],
['gettexture',['getTexture',['../classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc',1,'yage::ResourceManager::getTexture()'],['../classyage_1_1TextureCache.html#ad4929640230f9a74fcd634416fe0974f',1,'yage::TextureCache::getTexture()']]],
['gettexturefromspritesheet',['getTextureFromSpriteSheet',['../classyage_1_1TextureCache.html#abb785ce35eb847c02de67dc9e6e06bcd',1,'yage::TextureCache']]],
['glfw_5finclude_5fnone',['GLFW_INCLUDE_NONE',['../input_8h.html#a088324ad8995e3eb76024e3e79083d48',1,'input.h']]],
- ['glfwerrorcallback',['glfwErrorCallback',['../namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec',1,'yage']]],
- ['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html',1,'yage::details']]],
+ ['glfwerrorcallback',['glfwErrorCallback',['../namespaceyage.html#ae53246342d5b0371f300336cbc6595a3',1,'yage']]],
['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html#a91752b58fc10fb037658f27c9338627c',1,'yage::details::Glyph']]],
+ ['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html',1,'yage::details']]],
['grave_5faccent',['GRAVE_ACCENT',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a1547ad05c44be2cc614be32159bf666b',1,'yage']]],
['gravity',['GRAVITY',['../classyage_1_1Body.html#a4f61913cf00244a6160e09cda846f766',1,'yage::Body']]],
['gravity_5f',['gravity_',['../classyage_1_1Body.html#a454a7c59d07c94afb0a35c3d53ec2191',1,'yage::Body']]]
diff --git a/search/all_8.js b/search/all_8.js
index eb720a18..0546b201 100644
--- a/search/all_8.js
+++ b/search/all_8.js
@@ -6,11 +6,11 @@ var searchData=
['imageloader_2ecpp',['imageloader.cpp',['../imageloader_8cpp.html',1,'']]],
['imageloader_2eh',['imageloader.h',['../imageloader_8h.html',1,'']]],
['info',['INFO',['../namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788a551b723eafd6a31d444fcb2f5920fbd3',1,'yage']]],
- ['init',['init',['../classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477',1,'yage::Batch::init()'],['../classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1',1,'yage::Sprite::init()'],['../namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce',1,'yage::init()']]],
+ ['init',['init',['../classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4',1,'yage::Engine::init()'],['../classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9',1,'yage::System::init()'],['../classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477',1,'yage::Batch::init()'],['../classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1',1,'yage::Sprite::init()'],['../namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce',1,'yage::init()']]],
['input_2eh',['input.h',['../input_8h.html',1,'']]],
['insert',['INSERT',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a61ee777e7f71dc466c3b2c685d8d313b',1,'yage']]],
['inside',['inside',['../classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9',1,'yage::Collider::inside()'],['../classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4',1,'yage::RectangleCollider::inside()']]],
- ['instance',['instance',['../classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e',1,'yage::Logger']]],
+ ['instance',['instance',['../classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e',1,'yage::Logger::instance()'],['../classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33',1,'yage::Engine::instance()']]],
['iomanager',['IoManager',['../classyage_1_1IoManager.html',1,'yage']]],
['iomanager_2ecpp',['iomanager.cpp',['../iomanager_8cpp.html',1,'']]],
['iomanager_2eh',['iomanager.h',['../iomanager_8h.html',1,'']]]
diff --git a/search/all_b.js b/search/all_b.js
index 5bc41c42..7b493842 100644
--- a/search/all_b.js
+++ b/search/all_b.js
@@ -14,8 +14,9 @@ var searchData=
['logger',['Logger',['../classyage_1_1Logger.html',1,'yage']]],
['logger',['Logger',['../classyage_1_1LogMessage.html#aff02b76416d2846736b7ecd798921a0a',1,'yage::LogMessage::Logger()'],['../classyage_1_1Logger.html#a950c0c75b86bf330cf11a0ad29bd9a64',1,'yage::Logger::Logger()'],['../classyage_1_1Logger.html#a3d54590303257e9a8d1da26d59571352',1,'yage::Logger::Logger(const std::string &amp;file_path)'],['../classyage_1_1Logger.html#a71f6ab0fa1e86d790553c0763a255b2b',1,'yage::Logger::Logger(LogLevel min_level)'],['../classyage_1_1Logger.html#acbd21a2da8b423e9f606c386cabac074',1,'yage::Logger::Logger(LogLevel min_level, const std::string &amp;file_path)']]],
['logger_2ecpp',['logger.cpp',['../logger_8cpp.html',1,'']]],
- ['logger_2edox',['logger.dox',['../logger_8dox.html',1,'']]],
['logger_2eh',['logger.h',['../logger_8h.html',1,'']]],
+ ['logger_2emd',['logger.md',['../logger_8md.html',1,'']]],
+ ['logger',['Logger',['../logger_guide.html',1,'']]],
['loglevel',['LogLevel',['../namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788',1,'yage']]],
['loglevel_2eh',['loglevel.h',['../loglevel_8h.html',1,'']]],
['logmessage',['LogMessage',['../classyage_1_1LogMessage.html#af4ab2630201ecd155c329fbfebe352be',1,'yage::LogMessage']]],
diff --git a/search/all_c.js b/search/all_c.js
index 1ad1f18a..b417edd6 100644
--- a/search/all_c.js
+++ b/search/all_c.js
@@ -1,15 +1,18 @@
var searchData=
[
['m',['M',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a69691c7bdcc3ce6d5d8a1361f22d04ac',1,'yage']]],
+ ['main_2emd',['main.md',['../main_8md.html',1,'']]],
+ ['mainloop',['mainLoop',['../classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42',1,'yage::Engine']]],
['makeconsolesink',['makeConsoleSink',['../namespaceyage.html#ab54350a8dbf59338c99ab4f43cfa2858',1,'yage']]],
['makefilesink',['makeFileSink',['../namespaceyage.html#ad537beeea51c8314e407fadd24affc34',1,'yage::makeFileSink(const std::string &amp;filename)'],['../namespaceyage.html#a6b288197f6a97f197dda60e5b54f1841',1,'yage::makeFileSink(std::string &amp;&amp;filename)']]],
['mass_5f',['mass_',['../classyage_1_1Body.html#a01b2a500e71bc88f2cb597f376bc8289',1,'yage::Body']]],
- ['matrix',['Matrix',['../classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad',1,'yage::Matrix::Matrix()'],['../classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b',1,'yage::Matrix::Matrix(const std::vector&lt; Type &gt; &amp;data)']]],
['matrix',['Matrix',['../classyage_1_1Matrix.html',1,'yage']]],
- ['matrix_2edox',['matrix.dox',['../matrix_8dox.html',1,'']]],
+ ['matrix',['Matrix',['../classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad',1,'yage::Matrix::Matrix()'],['../classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b',1,'yage::Matrix::Matrix(const std::vector&lt; Type &gt; &amp;data)']]],
['matrix_2eh',['matrix.h',['../matrix_8h.html',1,'']]],
+ ['matrix_2emd',['matrix.md',['../matrix_8md.html',1,'']]],
['matrix_3c_20rows_2c_201_2c_20double_20_3e',['Matrix&lt; Rows, 1, double &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
['matrix_3c_20rows_2c_201_2c_20type_20_3e',['Matrix&lt; Rows, 1, Type &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
+ ['matrix_20guide',['Matrix Guide',['../matrix_guide.html',1,'']]],
['menu',['MENU',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a3ed53fbeb1eab0443561b68ca0c0b5cf',1,'yage']]],
['meta',['Meta',['../structyage_1_1LogMessage_1_1Meta.html',1,'yage::LogMessage']]],
['minus',['MINUS',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822affc0d9b54a1fe677c4c9e6b050e67c81',1,'yage']]],
diff --git a/search/all_d.js b/search/all_d.js
index 92dd4330..99de2295 100644
--- a/search/all_d.js
+++ b/search/all_d.js
@@ -1,6 +1,7 @@
var searchData=
[
['n',['N',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a8d9c307cb7f3c4a32822a51922d1ceaa',1,'yage']]],
+ ['nax_5fcomponents',['NAX_COMPONENTS',['../component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419',1,'component.h']]],
['num0',['NUM0',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a22517dfceb401f35b1b59999ba74c700',1,'yage']]],
['num1',['NUM1',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a71ddb986230a88155bf74e65f644dda4',1,'yage']]],
['num2',['NUM2',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a78232351eaf00755d136afad0745157b',1,'yage']]],
diff --git a/search/all_f.js b/search/all_f.js
index 9c3640aa..0bde2e41 100644
--- a/search/all_f.js
+++ b/search/all_f.js
@@ -13,7 +13,7 @@ var searchData=
['physics_2eh',['physics.h',['../physics_8h.html',1,'']]],
['pollevents',['pollEvents',['../classyage_1_1Window.html#a1a311e27b1e588f0fce540ce040dcbd5',1,'yage::Window']]],
['pop',['pop',['../classyage_1_1SyncQueue.html#a1f7f099e1347b82c1f2b72a5352ca05e',1,'yage::SyncQueue::pop()'],['../classyage_1_1SyncQueue.html#ab8a3c646e1d2f9adfcbcfbaa2e2a4b27',1,'yage::SyncQueue::pop(T &amp;item)']]],
- ['position',['position',['../structyage_1_1Vertex.html#abefe88d26b055655f9cc038a1dd4ff6a',1,'yage::Vertex::position()'],['../structyage_1_1Position.html#a41b1d5ee23c50208982ab6089708e5d2',1,'yage::Position::Position()=default'],['../structyage_1_1Position.html#aaeaa1cd93e57adcb08ef4f76513148e2',1,'yage::Position::Position(float x_, float y_)']]],
+ ['position',['Position',['../structyage_1_1Position.html#a41b1d5ee23c50208982ab6089708e5d2',1,'yage::Position::Position()=default'],['../structyage_1_1Position.html#aaeaa1cd93e57adcb08ef4f76513148e2',1,'yage::Position::Position(float x_, float y_)'],['../structyage_1_1Vertex.html#abefe88d26b055655f9cc038a1dd4ff6a',1,'yage::Vertex::position()'],['../component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1',1,'POSITION():&#160;component.h']]],
['position',['Position',['../structyage_1_1Position.html',1,'yage']]],
['position_5f',['position_',['../classyage_1_1Body.html#a8fe4f244be47f1336a57c1f2aa095157',1,'yage::Body::position_()'],['../classyage_1_1Collider.html#a2ae348a82a0ca7a871c05f36e5031161',1,'yage::Collider::position_()']]],
['print_5fscreen',['PRINT_SCREEN',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a853f8ded7a96b5a765704974e6a3ca96',1,'yage']]],
diff --git a/search/classes_2.js b/search/classes_2.js
index 39c1012f..27ed82b5 100644
--- a/search/classes_2.js
+++ b/search/classes_2.js
@@ -4,5 +4,6 @@ var searchData=
['collider',['Collider',['../classyage_1_1Collider.html',1,'yage']]],
['collisionbody',['CollisionBody',['../classyage_1_1CollisionBody.html',1,'yage']]],
['colour',['Colour',['../structyage_1_1Colour.html',1,'yage']]],
+ ['component',['Component',['../classComponent.html',1,'']]],
['coordinate',['Coordinate',['../structyage_1_1details_1_1Coordinate.html',1,'yage::details']]]
];
diff --git a/search/classes_4.js b/search/classes_4.js
index 4316901e..6da61229 100644
--- a/search/classes_4.js
+++ b/search/classes_4.js
@@ -1,4 +1,6 @@
var searchData=
[
- ['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html',1,'yage::details']]]
+ ['engine',['Engine',['../classyage_1_1Engine.html',1,'yage']]],
+ ['entity',['Entity',['../classyage_1_1Entity.html',1,'yage']]],
+ ['entitymanager',['EntityManager',['../classyage_1_1EntityManager.html',1,'yage']]]
];
diff --git a/search/classes_5.js b/search/classes_5.js
index 31f6033f..4316901e 100644
--- a/search/classes_5.js
+++ b/search/classes_5.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['imageloader',['ImageLoader',['../classyage_1_1ImageLoader.html',1,'yage']]],
- ['iomanager',['IoManager',['../classyage_1_1IoManager.html',1,'yage']]]
+ ['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html',1,'yage::details']]]
];
diff --git a/search/classes_6.js b/search/classes_6.js
index f1ddc024..31f6033f 100644
--- a/search/classes_6.js
+++ b/search/classes_6.js
@@ -1,6 +1,5 @@
var searchData=
[
- ['logger',['Logger',['../classyage_1_1Logger.html',1,'yage']]],
- ['logmessage',['LogMessage',['../classyage_1_1LogMessage.html',1,'yage']]],
- ['logsink',['LogSink',['../classyage_1_1LogSink.html',1,'yage']]]
+ ['imageloader',['ImageLoader',['../classyage_1_1ImageLoader.html',1,'yage']]],
+ ['iomanager',['IoManager',['../classyage_1_1IoManager.html',1,'yage']]]
];
diff --git a/search/classes_7.js b/search/classes_7.js
index 5c0e52cf..f1ddc024 100644
--- a/search/classes_7.js
+++ b/search/classes_7.js
@@ -1,7 +1,6 @@
var searchData=
[
- ['matrix',['Matrix',['../classyage_1_1Matrix.html',1,'yage']]],
- ['matrix_3c_20rows_2c_201_2c_20double_20_3e',['Matrix&lt; Rows, 1, double &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
- ['matrix_3c_20rows_2c_201_2c_20type_20_3e',['Matrix&lt; Rows, 1, Type &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
- ['meta',['Meta',['../structyage_1_1LogMessage_1_1Meta.html',1,'yage::LogMessage']]]
+ ['logger',['Logger',['../classyage_1_1Logger.html',1,'yage']]],
+ ['logmessage',['LogMessage',['../classyage_1_1LogMessage.html',1,'yage']]],
+ ['logsink',['LogSink',['../classyage_1_1LogSink.html',1,'yage']]]
];
diff --git a/search/classes_8.js b/search/classes_8.js
index d616947f..5c0e52cf 100644
--- a/search/classes_8.js
+++ b/search/classes_8.js
@@ -1,5 +1,7 @@
var searchData=
[
- ['particlebody',['ParticleBody',['../classyage_1_1ParticleBody.html',1,'yage']]],
- ['position',['Position',['../structyage_1_1Position.html',1,'yage']]]
+ ['matrix',['Matrix',['../classyage_1_1Matrix.html',1,'yage']]],
+ ['matrix_3c_20rows_2c_201_2c_20double_20_3e',['Matrix&lt; Rows, 1, double &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
+ ['matrix_3c_20rows_2c_201_2c_20type_20_3e',['Matrix&lt; Rows, 1, Type &gt;',['../classyage_1_1Matrix.html',1,'yage']]],
+ ['meta',['Meta',['../structyage_1_1LogMessage_1_1Meta.html',1,'yage::LogMessage']]]
];
diff --git a/search/classes_9.js b/search/classes_9.js
index 5c9a6968..d616947f 100644
--- a/search/classes_9.js
+++ b/search/classes_9.js
@@ -1,9 +1,5 @@
var searchData=
[
- ['rectangle',['Rectangle',['../classyage_1_1Rectangle.html',1,'yage']]],
- ['rectanglecollider',['RectangleCollider',['../classyage_1_1RectangleCollider.html',1,'yage']]],
- ['renderbatch',['RenderBatch',['../structyage_1_1details_1_1RenderBatch.html',1,'yage::details']]],
- ['resourcemanager',['ResourceManager',['../classyage_1_1ResourceManager.html',1,'yage']]],
- ['rigidbody',['RigidBody',['../classyage_1_1RigidBody.html',1,'yage']]],
- ['row',['Row',['../classyage_1_1details_1_1Row.html',1,'yage::details']]]
+ ['particlebody',['ParticleBody',['../classyage_1_1ParticleBody.html',1,'yage']]],
+ ['position',['Position',['../structyage_1_1Position.html',1,'yage']]]
];
diff --git a/search/classes_a.js b/search/classes_a.js
index 8ff19f3c..5c9a6968 100644
--- a/search/classes_a.js
+++ b/search/classes_a.js
@@ -1,11 +1,9 @@
var searchData=
[
- ['shader',['Shader',['../classyage_1_1Shader.html',1,'yage']]],
- ['shape',['Shape',['../classyage_1_1Shape.html',1,'yage']]],
- ['sprite',['Sprite',['../classyage_1_1Sprite.html',1,'yage']]],
- ['spritebatch',['SpriteBatch',['../classyage_1_1SpriteBatch.html',1,'yage']]],
- ['spritesheet',['SpriteSheet',['../classyage_1_1SpriteSheet.html',1,'yage']]],
- ['stbi_5fio_5fcallbacks',['stbi_io_callbacks',['../structstbi__io__callbacks.html',1,'']]],
- ['syncqueue',['SyncQueue',['../classyage_1_1SyncQueue.html',1,'yage']]],
- ['syncqueue_3c_20callback_20_3e',['SyncQueue&lt; Callback &gt;',['../classyage_1_1SyncQueue.html',1,'yage']]]
+ ['rectangle',['Rectangle',['../classyage_1_1Rectangle.html',1,'yage']]],
+ ['rectanglecollider',['RectangleCollider',['../classyage_1_1RectangleCollider.html',1,'yage']]],
+ ['renderbatch',['RenderBatch',['../structyage_1_1details_1_1RenderBatch.html',1,'yage::details']]],
+ ['resourcemanager',['ResourceManager',['../classyage_1_1ResourceManager.html',1,'yage']]],
+ ['rigidbody',['RigidBody',['../classyage_1_1RigidBody.html',1,'yage']]],
+ ['row',['Row',['../classyage_1_1details_1_1Row.html',1,'yage::details']]]
];
diff --git a/search/classes_b.js b/search/classes_b.js
index bb215bc2..b02501e0 100644
--- a/search/classes_b.js
+++ b/search/classes_b.js
@@ -1,5 +1,13 @@
var searchData=
[
- ['texture',['Texture',['../structyage_1_1Texture.html',1,'yage']]],
- ['texturecache',['TextureCache',['../classyage_1_1TextureCache.html',1,'yage']]]
+ ['shader',['Shader',['../classyage_1_1Shader.html',1,'yage']]],
+ ['shape',['Shape',['../classyage_1_1Shape.html',1,'yage']]],
+ ['space',['Space',['../classyage_1_1Space.html',1,'yage']]],
+ ['sprite',['Sprite',['../classyage_1_1Sprite.html',1,'yage']]],
+ ['spritebatch',['SpriteBatch',['../classyage_1_1SpriteBatch.html',1,'yage']]],
+ ['spritesheet',['SpriteSheet',['../classyage_1_1SpriteSheet.html',1,'yage']]],
+ ['stbi_5fio_5fcallbacks',['stbi_io_callbacks',['../structstbi__io__callbacks.html',1,'']]],
+ ['syncqueue',['SyncQueue',['../classyage_1_1SyncQueue.html',1,'yage']]],
+ ['syncqueue_3c_20callback_20_3e',['SyncQueue&lt; Callback &gt;',['../classyage_1_1SyncQueue.html',1,'yage']]],
+ ['system',['System',['../classyage_1_1System.html',1,'yage']]]
];
diff --git a/search/classes_c.js b/search/classes_c.js
index 92c686bb..bb215bc2 100644
--- a/search/classes_c.js
+++ b/search/classes_c.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['uv',['UV',['../structyage_1_1UV.html',1,'yage']]]
+ ['texture',['Texture',['../structyage_1_1Texture.html',1,'yage']]],
+ ['texturecache',['TextureCache',['../classyage_1_1TextureCache.html',1,'yage']]]
];
diff --git a/search/classes_d.js b/search/classes_d.js
index d084cf51..92c686bb 100644
--- a/search/classes_d.js
+++ b/search/classes_d.js
@@ -1,13 +1,4 @@
var searchData=
[
- ['vector',['Vector',['../classyage_1_1Vector.html',1,'yage']]],
- ['vector2',['Vector2',['../classyage_1_1Vector2.html',1,'yage']]],
- ['vector2_3c_20double_20_3e',['Vector2&lt; double &gt;',['../classyage_1_1Vector2.html',1,'yage']]],
- ['vector3',['Vector3',['../classyage_1_1Vector3.html',1,'yage']]],
- ['vector4',['Vector4',['../classyage_1_1Vector4.html',1,'yage']]],
- ['vector_3c_202_2c_20double_20_3e',['Vector&lt; 2, double &gt;',['../classyage_1_1Vector.html',1,'yage']]],
- ['vector_3c_202_2c_20type_20_3e',['Vector&lt; 2, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
- ['vector_3c_203_2c_20type_20_3e',['Vector&lt; 3, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
- ['vector_3c_204_2c_20type_20_3e',['Vector&lt; 4, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
- ['vertex',['Vertex',['../structyage_1_1Vertex.html',1,'yage']]]
+ ['uv',['UV',['../structyage_1_1UV.html',1,'yage']]]
];
diff --git a/search/classes_e.js b/search/classes_e.js
index 50e8b3e6..d084cf51 100644
--- a/search/classes_e.js
+++ b/search/classes_e.js
@@ -1,4 +1,13 @@
var searchData=
[
- ['window',['Window',['../classyage_1_1Window.html',1,'yage']]]
+ ['vector',['Vector',['../classyage_1_1Vector.html',1,'yage']]],
+ ['vector2',['Vector2',['../classyage_1_1Vector2.html',1,'yage']]],
+ ['vector2_3c_20double_20_3e',['Vector2&lt; double &gt;',['../classyage_1_1Vector2.html',1,'yage']]],
+ ['vector3',['Vector3',['../classyage_1_1Vector3.html',1,'yage']]],
+ ['vector4',['Vector4',['../classyage_1_1Vector4.html',1,'yage']]],
+ ['vector_3c_202_2c_20double_20_3e',['Vector&lt; 2, double &gt;',['../classyage_1_1Vector.html',1,'yage']]],
+ ['vector_3c_202_2c_20type_20_3e',['Vector&lt; 2, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
+ ['vector_3c_203_2c_20type_20_3e',['Vector&lt; 3, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
+ ['vector_3c_204_2c_20type_20_3e',['Vector&lt; 4, Type &gt;',['../classyage_1_1Vector.html',1,'yage']]],
+ ['vertex',['Vertex',['../structyage_1_1Vertex.html',1,'yage']]]
];
diff --git a/search/classes_f.html b/search/classes_f.html
new file mode 100644
index 00000000..cee523ad
--- /dev/null
+++ b/search/classes_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/classes_f.js b/search/classes_f.js
new file mode 100644
index 00000000..50e8b3e6
--- /dev/null
+++ b/search/classes_f.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['window',['Window',['../classyage_1_1Window.html',1,'yage']]]
+];
diff --git a/search/enums_0.js b/search/enums_0.js
index a86b6476..bba27f5e 100644
--- a/search/enums_0.js
+++ b/search/enums_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['key',['key',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822',1,'yage']]]
+ ['componentenum',['ComponentEnum',['../component_8h.html#a265b76591becf42b342804bbc4a79507',1,'component.h']]]
];
diff --git a/search/enums_1.js b/search/enums_1.js
index c289225e..a86b6476 100644
--- a/search/enums_1.js
+++ b/search/enums_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['loglevel',['LogLevel',['../namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788',1,'yage']]]
+ ['key',['key',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822',1,'yage']]]
];
diff --git a/search/enums_2.js b/search/enums_2.js
index 59289f8c..c289225e 100644
--- a/search/enums_2.js
+++ b/search/enums_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['windowflags',['WindowFlags',['../namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38',1,'yage']]]
+ ['loglevel',['LogLevel',['../namespaceyage.html#a4ac616fa26af17775ed558a4c08e4788',1,'yage']]]
];
diff --git a/search/enums_3.html b/search/enums_3.html
new file mode 100644
index 00000000..77df324a
--- /dev/null
+++ b/search/enums_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/enums_3.js b/search/enums_3.js
new file mode 100644
index 00000000..59289f8c
--- /dev/null
+++ b/search/enums_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['windowflags',['WindowFlags',['../namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38',1,'yage']]]
+];
diff --git a/search/enumvalues_d.js b/search/enumvalues_d.js
index 0cd479d6..6f23646c 100644
--- a/search/enumvalues_d.js
+++ b/search/enumvalues_d.js
@@ -1,6 +1,7 @@
var searchData=
[
['n',['N',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a8d9c307cb7f3c4a32822a51922d1ceaa',1,'yage']]],
+ ['nax_5fcomponents',['NAX_COMPONENTS',['../component_8h.html#a265b76591becf42b342804bbc4a79507af13334a5251126fb6c2316d8c81c5419',1,'component.h']]],
['num0',['NUM0',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a22517dfceb401f35b1b59999ba74c700',1,'yage']]],
['num1',['NUM1',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a71ddb986230a88155bf74e65f644dda4',1,'yage']]],
['num2',['NUM2',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a78232351eaf00755d136afad0745157b',1,'yage']]],
diff --git a/search/enumvalues_f.js b/search/enumvalues_f.js
index 1066662e..17c586db 100644
--- a/search/enumvalues_f.js
+++ b/search/enumvalues_f.js
@@ -5,5 +5,6 @@ var searchData=
['page_5fup',['PAGE_UP',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822ae791d936f894ce58dd18bf603edcb9b4',1,'yage']]],
['pause',['PAUSE',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a291554596c183e837f0a6bec3767c891',1,'yage']]],
['period',['PERIOD',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822ade58a28573783fe95304a260ccd90362',1,'yage']]],
+ ['position',['POSITION',['../component_8h.html#a265b76591becf42b342804bbc4a79507a90b4ba73224408e82ade8a072a3712c1',1,'component.h']]],
['print_5fscreen',['PRINT_SCREEN',['../namespaceyage.html#ad5a9307442e5daa8810aff942564a822a853f8ded7a96b5a765704974e6a3ca96',1,'yage']]]
];
diff --git a/search/files_2.js b/search/files_2.js
index 202c9f20..6a6e3ddd 100644
--- a/search/files_2.js
+++ b/search/files_2.js
@@ -3,5 +3,6 @@ var searchData=
['camera_2ecpp',['camera.cpp',['../camera_8cpp.html',1,'']]],
['camera_2eh',['camera.h',['../camera_8h.html',1,'']]],
['collider_2eh',['collider.h',['../collider_8h.html',1,'']]],
- ['collisionbody_2eh',['collisionbody.h',['../collisionbody_8h.html',1,'']]]
+ ['collisionbody_2eh',['collisionbody.h',['../collisionbody_8h.html',1,'']]],
+ ['component_2eh',['component.h',['../component_8h.html',1,'']]]
];
diff --git a/search/files_4.js b/search/files_4.js
index f4e207d8..e14d9c37 100644
--- a/search/files_4.js
+++ b/search/files_4.js
@@ -1,4 +1,10 @@
var searchData=
[
- ['ellipse_2eh',['ellipse.h',['../ellipse_8h.html',1,'']]]
+ ['ellipse_2eh',['ellipse.h',['../ellipse_8h.html',1,'']]],
+ ['engine_2ecpp',['engine.cpp',['../engine_8cpp.html',1,'']]],
+ ['engine_2eh',['engine.h',['../engine_8h.html',1,'']]],
+ ['entity_2ecpp',['entity.cpp',['../entity_8cpp.html',1,'']]],
+ ['entity_2eh',['entity.h',['../entity_8h.html',1,'']]],
+ ['entitymanager_2ecpp',['entitymanager.cpp',['../entitymanager_8cpp.html',1,'']]],
+ ['entitymanager_2eh',['entitymanager.h',['../entitymanager_8h.html',1,'']]]
];
diff --git a/search/files_6.js b/search/files_6.js
index 8c02e7f3..096f856d 100644
--- a/search/files_6.js
+++ b/search/files_6.js
@@ -1,8 +1,8 @@
var searchData=
[
['logger_2ecpp',['logger.cpp',['../logger_8cpp.html',1,'']]],
- ['logger_2edox',['logger.dox',['../logger_8dox.html',1,'']]],
['logger_2eh',['logger.h',['../logger_8h.html',1,'']]],
+ ['logger_2emd',['logger.md',['../logger_8md.html',1,'']]],
['loglevel_2eh',['loglevel.h',['../loglevel_8h.html',1,'']]],
['logmessage_2ecpp',['logmessage.cpp',['../logmessage_8cpp.html',1,'']]],
['logmessage_2eh',['logmessage.h',['../logmessage_8h.html',1,'']]],
diff --git a/search/files_7.js b/search/files_7.js
index 42177e69..8e37376a 100644
--- a/search/files_7.js
+++ b/search/files_7.js
@@ -1,5 +1,6 @@
var searchData=
[
- ['matrix_2edox',['matrix.dox',['../matrix_8dox.html',1,'']]],
- ['matrix_2eh',['matrix.h',['../matrix_8h.html',1,'']]]
+ ['main_2emd',['main.md',['../main_8md.html',1,'']]],
+ ['matrix_2eh',['matrix.h',['../matrix_8h.html',1,'']]],
+ ['matrix_2emd',['matrix.md',['../matrix_8md.html',1,'']]]
];
diff --git a/search/files_a.js b/search/files_a.js
index e6d66a8b..8b2e785e 100644
--- a/search/files_a.js
+++ b/search/files_a.js
@@ -3,13 +3,17 @@ var searchData=
['shader_2ecpp',['shader.cpp',['../shader_8cpp.html',1,'']]],
['shader_2eh',['shader.h',['../shader_8h.html',1,'']]],
['shape_2eh',['shape.h',['../shape_8h.html',1,'']]],
+ ['space_2ecpp',['space.cpp',['../space_8cpp.html',1,'']]],
+ ['space_2eh',['space.h',['../space_8h.html',1,'']]],
['sprite_2ecpp',['sprite.cpp',['../sprite_8cpp.html',1,'']]],
['sprite_2eh',['sprite.h',['../sprite_8h.html',1,'']]],
['spritebatch_2ecpp',['spritebatch.cpp',['../spritebatch_8cpp.html',1,'']]],
['spritebatch_2eh',['spritebatch.h',['../spritebatch_8h.html',1,'']]],
+ ['spritebatch_2emd',['spritebatch.md',['../spritebatch_8md.html',1,'']]],
['spritesheet_2ecpp',['spritesheet.cpp',['../spritesheet_8cpp.html',1,'']]],
['spritesheet_2eh',['spritesheet.h',['../spritesheet_8h.html',1,'']]],
['stb_5fimage_2ecpp',['stb_image.cpp',['../stb__image_8cpp.html',1,'']]],
['stb_5fimage_2eh',['stb_image.h',['../stb__image_8h.html',1,'']]],
- ['syncqueue_2eh',['syncqueue.h',['../syncqueue_8h.html',1,'']]]
+ ['syncqueue_2eh',['syncqueue.h',['../syncqueue_8h.html',1,'']]],
+ ['system_2eh',['system.h',['../system_8h.html',1,'']]]
];
diff --git a/search/files_b.js b/search/files_b.js
index b27f863e..19908353 100644
--- a/search/files_b.js
+++ b/search/files_b.js
@@ -3,5 +3,5 @@ var searchData=
['texture_2eh',['texture.h',['../texture_8h.html',1,'']]],
['texturecache_2ecpp',['texturecache.cpp',['../texturecache_8cpp.html',1,'']]],
['texturecache_2eh',['texturecache.h',['../texturecache_8h.html',1,'']]],
- ['todolist_2edox',['todolist.dox',['../todolist_8dox.html',1,'']]]
+ ['todolist_2emd',['todolist.md',['../todolist_8md.html',1,'']]]
];
diff --git a/search/functions_0.js b/search/functions_0.js
index a92378b9..d2494ce5 100644
--- a/search/functions_0.js
+++ b/search/functions_0.js
@@ -2,5 +2,6 @@ var searchData=
[
['active',['Active',['../classyage_1_1Active.html#a7cd7344f0b8b7aa93ac0449e2fbbf7bd',1,'yage::Active']]],
['add',['add',['../classyage_1_1Logger.html#a5ec9a752e8cbb278342fdb49520fbcdd',1,'yage::Logger']]],
+ ['addsystem',['addSystem',['../classyage_1_1Engine.html#ab605c8ab3209e6cb1a8b0d45eb6180b6',1,'yage::Engine']]],
['applyforce',['applyForce',['../classyage_1_1Body.html#a56310be4f9d7d2d4e7f954af0e0a5878',1,'yage::Body::applyForce()'],['../classyage_1_1ParticleBody.html#a4d6c52fc2106ebd3f131d2be1fa3f11b',1,'yage::ParticleBody::applyForce()']]]
];
diff --git a/search/functions_10.js b/search/functions_10.js
index ec3fcb05..06e3b7e9 100644
--- a/search/functions_10.js
+++ b/search/functions_10.js
@@ -9,6 +9,7 @@ var searchData=
['shader',['Shader',['../classyage_1_1Shader.html#a34fe30eb6e6d595c1996e8ea6fb3961a',1,'yage::Shader::Shader(const std::string &amp;vertex_path, const std::string &amp;fragment_path)'],['../classyage_1_1Shader.html#a1a006dcb52a4fb9f1dc61df68d3676f5',1,'yage::Shader::Shader(const Shader &amp;)=delete'],['../classyage_1_1Shader.html#adf6dc3a526921d62b55a552f38958dd2',1,'yage::Shader::Shader(Shader &amp;&amp;)=delete']]],
['shouldclose',['shouldClose',['../classyage_1_1Window.html#a5e3b209289bc343609d809d5b7f23cc8',1,'yage::Window']]],
['show',['show',['../classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34',1,'yage::Window']]],
+ ['space',['Space',['../classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9',1,'yage::Space']]],
['sprite',['Sprite',['../classyage_1_1Sprite.html#a113bfddfa62846a1d8391d1b86de7987',1,'yage::Sprite::Sprite()=default'],['../classyage_1_1Sprite.html#aa5a7958e17f1d042226b91fb1829642e',1,'yage::Sprite::Sprite(const Sprite &amp;)=delete'],['../classyage_1_1Sprite.html#a33789b3e37bfcb84ed89ec69f47817a1',1,'yage::Sprite::Sprite(Sprite &amp;&amp;)=delete'],['../classyage_1_1SpriteSheet.html#a2734c2e7b8bdfc9090d240c070ee55c0',1,'yage::SpriteSheet::sprite()']]],
['spritebatch',['SpriteBatch',['../classyage_1_1SpriteBatch.html#afda50a8a2a6c9ffd1b9d962fae223f8a',1,'yage::SpriteBatch::SpriteBatch()'],['../classyage_1_1SpriteBatch.html#a30a46a7182235a739916d540781af652',1,'yage::SpriteBatch::SpriteBatch(const SpriteBatch &amp;)=delete'],['../classyage_1_1SpriteBatch.html#a7f18a506f4188acd2219da8147dc0e1e',1,'yage::SpriteBatch::SpriteBatch(SpriteBatch &amp;&amp;)=delete']]],
['spritesheet',['SpriteSheet',['../classyage_1_1SpriteSheet.html#a73db999ab17c4846f036eb47470176f6',1,'yage::SpriteSheet']]],
diff --git a/search/functions_12.js b/search/functions_12.js
index dc91ba1d..a5fd3220 100644
--- a/search/functions_12.js
+++ b/search/functions_12.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['update',['update',['../classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c',1,'yage::Camera::update()'],['../classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36',1,'yage::Body::update()'],['../classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c',1,'yage::ParticleBody::update()']]],
+ ['update',['update',['../classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c',1,'yage::Camera::update()'],['../classyage_1_1Engine.html#a8d888a2871d93f40b98ecf3548dd8d67',1,'yage::Engine::update()'],['../classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff',1,'yage::System::update()'],['../classyage_1_1Body.html#a17017d183f3f9ecdff779fd6f82c5d36',1,'yage::Body::update()'],['../classyage_1_1ParticleBody.html#a1f24ef00fd59254397d677d90936ec4c',1,'yage::ParticleBody::update()']]],
['use',['use',['../classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c',1,'yage::Shader']]],
['uv',['UV',['../structyage_1_1UV.html#ae236139f3a5f6024aac1e21bd93b7bde',1,'yage::UV::UV()=default'],['../structyage_1_1UV.html#ac918524789292937aae5803df3c2673f',1,'yage::UV::UV(float u_, float v_)']]]
];
diff --git a/search/functions_18.js b/search/functions_18.js
index 4a39058c..650b6532 100644
--- a/search/functions_18.js
+++ b/search/functions_18.js
@@ -6,5 +6,6 @@ var searchData=
['_7eshader',['~Shader',['../classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd',1,'yage::Shader']]],
['_7esprite',['~Sprite',['../classyage_1_1Sprite.html#aa2f833e040940616fa17ee8f02f8cab2',1,'yage::Sprite']]],
['_7espritebatch',['~SpriteBatch',['../classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a',1,'yage::SpriteBatch']]],
+ ['_7esystem',['~System',['../classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57',1,'yage::System']]],
['_7ewindow',['~Window',['../classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0',1,'yage::Window']]]
];
diff --git a/search/functions_2.js b/search/functions_2.js
index e1f09b78..9509e429 100644
--- a/search/functions_2.js
+++ b/search/functions_2.js
@@ -9,5 +9,7 @@ var searchData=
['colour',['Colour',['../structyage_1_1Colour.html#a585165d5109c81b6b2de6f1116406abd',1,'yage::Colour::Colour()'],['../structyage_1_1Colour.html#a8118ad802db7e61df770f7d3b5b88aaa',1,'yage::Colour::Colour(GLubyte r_, GLubyte g_, GLubyte b_, GLubyte a_)']]],
['colsize',['colSize',['../classyage_1_1Matrix.html#a2148cd52008892765ad90250c68afba1',1,'yage::Matrix']]],
['coordinate',['Coordinate',['../structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629',1,'yage::details::Coordinate::Coordinate()=default'],['../structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a',1,'yage::details::Coordinate::Coordinate(int x_i, int y_i, int width_i, int height_i)']]],
- ['create',['create',['../classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745',1,'yage::Window::create()'],['../classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064',1,'yage::Active::create()']]]
+ ['create',['create',['../classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745',1,'yage::Window::create()'],['../classyage_1_1Active.html#aa2ed414bbe94fdd51c8aeb7ada73a064',1,'yage::Active::create()']]],
+ ['createentity',['createEntity',['../classyage_1_1EntityManager.html#acdd054a1235fb03452089d9f419a7e2b',1,'yage::EntityManager::createEntity()'],['../classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4',1,'yage::Space::createEntity()']]],
+ ['createentityinstance',['createEntityInstance',['../classyage_1_1EntityManager.html#a188f3bc252781f9f3a7b4da417f0d7de',1,'yage::EntityManager']]]
];
diff --git a/search/functions_4.js b/search/functions_4.js
index 10b10be0..1cc6491c 100644
--- a/search/functions_4.js
+++ b/search/functions_4.js
@@ -1,4 +1,6 @@
var searchData=
[
- ['end',['end',['../classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851',1,'yage::Matrix::end()'],['../classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e',1,'yage::Batch::end()'],['../classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632',1,'yage::SpriteBatch::end()']]]
+ ['end',['end',['../classyage_1_1Matrix.html#a20ea5fe16d27ef15f775b5497cadc851',1,'yage::Matrix::end()'],['../classyage_1_1Batch.html#a322b0fe531c9cfa506d6d2dd786a236e',1,'yage::Batch::end()'],['../classyage_1_1SpriteBatch.html#af8b705cdad7ceefa902f3be620ac8632',1,'yage::SpriteBatch::end()']]],
+ ['entity',['Entity',['../classyage_1_1Entity.html#a046099f19b3483140505938769276d8a',1,'yage::Entity']]],
+ ['entitymanager',['EntityManager',['../classyage_1_1EntityManager.html#a255fa9aff3e6b208eea0c38d8caf08f8',1,'yage::EntityManager::EntityManager()=default'],['../classyage_1_1EntityManager.html#a0099fe0038967007891d2b7575090915',1,'yage::EntityManager::EntityManager(Space *space)'],['../classyage_1_1EntityManager.html#af1644095d96e43ac000375ba7f7ee021',1,'yage::EntityManager::EntityManager(Space *space, std::size_t n)']]]
];
diff --git a/search/functions_6.js b/search/functions_6.js
index 3fea5334..49d6797a 100644
--- a/search/functions_6.js
+++ b/search/functions_6.js
@@ -1,9 +1,10 @@
var searchData=
[
['getcol',['getCol',['../classyage_1_1Matrix.html#a74475218328d6ef69701a6e261df925b',1,'yage::Matrix']]],
+ ['gethandle',['getHandle',['../classyage_1_1Entity.html#adb9e45f096a38c1057bba28acf7dde71',1,'yage::Entity']]],
['getrow',['getRow',['../classyage_1_1Matrix.html#a960273d1ac46a8edb71ceee08ee639b8',1,'yage::Matrix']]],
['gettexture',['getTexture',['../classyage_1_1ResourceManager.html#aec533f266d9b432050faed301f4191dc',1,'yage::ResourceManager::getTexture()'],['../classyage_1_1TextureCache.html#ad4929640230f9a74fcd634416fe0974f',1,'yage::TextureCache::getTexture()']]],
['gettexturefromspritesheet',['getTextureFromSpriteSheet',['../classyage_1_1TextureCache.html#abb785ce35eb847c02de67dc9e6e06bcd',1,'yage::TextureCache']]],
- ['glfwerrorcallback',['glfwErrorCallback',['../namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec',1,'yage']]],
+ ['glfwerrorcallback',['glfwErrorCallback',['../namespaceyage.html#ae53246342d5b0371f300336cbc6595a3',1,'yage']]],
['glyph',['Glyph',['../structyage_1_1details_1_1Glyph.html#a91752b58fc10fb037658f27c9338627c',1,'yage::details::Glyph']]]
];
diff --git a/search/functions_8.js b/search/functions_8.js
index 507861e5..2d268bc1 100644
--- a/search/functions_8.js
+++ b/search/functions_8.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['init',['init',['../classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477',1,'yage::Batch::init()'],['../classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1',1,'yage::Sprite::init()'],['../namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce',1,'yage::init()']]],
+ ['init',['init',['../classyage_1_1Engine.html#a41073d8b8117e567357fe46fed01bbe4',1,'yage::Engine::init()'],['../classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9',1,'yage::System::init()'],['../classyage_1_1Batch.html#a0040228902f0a4cca90da23f36a7c477',1,'yage::Batch::init()'],['../classyage_1_1Sprite.html#a2f6294be8b2551077cf475892bcddcc1',1,'yage::Sprite::init()'],['../namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce',1,'yage::init()']]],
['inside',['inside',['../classyage_1_1Collider.html#a4a8ad9e664a0015e023a70d196302fe9',1,'yage::Collider::inside()'],['../classyage_1_1RectangleCollider.html#ac8d8e6bdb12c21be12f7d398242147c4',1,'yage::RectangleCollider::inside()']]],
- ['instance',['instance',['../classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e',1,'yage::Logger']]]
+ ['instance',['instance',['../classyage_1_1Logger.html#ad165738c5b738d80a14b0ee1319cae2e',1,'yage::Logger::instance()'],['../classyage_1_1Engine.html#a7e4303fa3bd951ee64e166d6e0fb7b33',1,'yage::Engine::instance()']]]
];
diff --git a/search/functions_b.js b/search/functions_b.js
index 43be41e3..e3e2fe35 100644
--- a/search/functions_b.js
+++ b/search/functions_b.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['mainloop',['mainLoop',['../classyage_1_1Engine.html#a245478397be4ca0d9ac6af84c1753e42',1,'yage::Engine']]],
['makeconsolesink',['makeConsoleSink',['../namespaceyage.html#ab54350a8dbf59338c99ab4f43cfa2858',1,'yage']]],
['makefilesink',['makeFileSink',['../namespaceyage.html#ad537beeea51c8314e407fadd24affc34',1,'yage::makeFileSink(const std::string &amp;filename)'],['../namespaceyage.html#a6b288197f6a97f197dda60e5b54f1841',1,'yage::makeFileSink(std::string &amp;&amp;filename)']]],
['matrix',['Matrix',['../classyage_1_1Matrix.html#a73b7d1f94f4f72a2294b71b3a35794ad',1,'yage::Matrix::Matrix()'],['../classyage_1_1Matrix.html#a191b02ff353d04f18779d4c84e20927b',1,'yage::Matrix::Matrix(const std::vector&lt; Type &gt; &amp;data)']]],
diff --git a/search/pages_0.js b/search/pages_0.js
index 8d42650d..978e53b3 100644
--- a/search/pages_0.js
+++ b/search/pages_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['bug_20list',['Bug List',['../bug.html',1,'']]]
+ ['add_20comments',['Add Comments',['../md_docs_todolist.html',1,'']]]
];
diff --git a/search/pages_1.js b/search/pages_1.js
index 038da541..8d42650d 100644
--- a/search/pages_1.js
+++ b/search/pages_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+ ['bug_20list',['Bug List',['../bug.html',1,'']]]
];
diff --git a/search/pages_2.js b/search/pages_2.js
index 4c4cca2b..038da541 100644
--- a/search/pages_2.js
+++ b/search/pages_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['physics_20engine',['Physics Engine',['../md_yage_physics_README.html',1,'']]]
+ ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
];
diff --git a/search/pages_3.js b/search/pages_3.js
index 441b2dec..58ac2e4b 100644
--- a/search/pages_3.js
+++ b/search/pages_3.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['todo_20list',['Todo List',['../todo.html',1,'']]]
+ ['logger',['Logger',['../logger_guide.html',1,'']]]
];
diff --git a/search/pages_4.js b/search/pages_4.js
index 62ccbfb4..50b3a64a 100644
--- a/search/pages_4.js
+++ b/search/pages_4.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['yage',['YAGE',['../index.html',1,'']]]
+ ['matrix_20guide',['Matrix Guide',['../matrix_guide.html',1,'']]]
];
diff --git a/search/pages_5.html b/search/pages_5.html
new file mode 100644
index 00000000..02c11148
--- /dev/null
+++ b/search/pages_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/pages_5.js b/search/pages_5.js
new file mode 100644
index 00000000..4c4cca2b
--- /dev/null
+++ b/search/pages_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['physics_20engine',['Physics Engine',['../md_yage_physics_README.html',1,'']]]
+];
diff --git a/search/pages_6.html b/search/pages_6.html
new file mode 100644
index 00000000..afb70afd
--- /dev/null
+++ b/search/pages_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/pages_6.js b/search/pages_6.js
new file mode 100644
index 00000000..39e0d94c
--- /dev/null
+++ b/search/pages_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['sprite_20batching',['Sprite Batching',['../spritebatch_guide.html',1,'']]]
+];
diff --git a/search/pages_7.html b/search/pages_7.html
new file mode 100644
index 00000000..9d7ba25f
--- /dev/null
+++ b/search/pages_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/pages_7.js b/search/pages_7.js
new file mode 100644
index 00000000..441b2dec
--- /dev/null
+++ b/search/pages_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['todo_20list',['Todo List',['../todo.html',1,'']]]
+];
diff --git a/search/pages_8.html b/search/pages_8.html
new file mode 100644
index 00000000..33778878
--- /dev/null
+++ b/search/pages_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/pages_8.js b/search/pages_8.js
new file mode 100644
index 00000000..83bdc55e
--- /dev/null
+++ b/search/pages_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['yage',['YAGE',['../index.html',1,'']]],
+ ['yage',['YAGE',['../md_README.html',1,'']]]
+];
diff --git a/search/search.css b/search/search.css
index 4d7612ff..e8187b17 100644
--- a/search/search.css
+++ b/search/search.css
@@ -100,8 +100,8 @@
display: none;
position: absolute;
left: 0; top: 0;
- border: 1px solid #90A5CE;
- background-color: #F9FAFC;
+ border: 1px solid #ED9071;
+ background-color: #FEF9F7;
z-index: 1;
padding-top: 4px;
padding-bottom: 4px;
@@ -145,7 +145,7 @@ a.SelectItem:active {
a.SelectItem:hover {
color: #FFFFFF;
- background-color: #3D578C;
+ background-color: #B33D15;
outline-style: none;
text-decoration: none;
cursor: pointer;
@@ -164,7 +164,7 @@ iframe#MSearchResults {
position: absolute;
left: 0; top: 0;
border: 1px solid #000;
- background-color: #EEF1F7;
+ background-color: #FCEEE9;
}
/* ----------------------------------- */
@@ -199,7 +199,7 @@ body.SRPage {
.SRSymbol {
font-weight: bold;
- color: #425E97;
+ color: #C24217;
font-family: Arial, Verdana, sans-serif;
text-decoration: none;
outline: none;
@@ -207,7 +207,7 @@ body.SRPage {
a.SRScope {
display: block;
- color: #425E97;
+ color: #C24217;
font-family: Arial, Verdana, sans-serif;
text-decoration: none;
outline: none;
@@ -240,7 +240,7 @@ DIV.searchresults {
/*---------------- External search page results */
.searchresult {
- background-color: #F0F3F8;
+ background-color: #FCF0EC;
}
.pages b {
diff --git a/search/search.js b/search/search.js
index 5fff46bf..812eba6b 100644
--- a/search/search.js
+++ b/search/search.js
@@ -8,17 +8,17 @@
var indexSectionsWithContent =
{
0: "abcdefghijklmnopqrstuvwxyz~",
- 1: "abcdgilmprstuvw",
+ 1: "abcdegilmprstuvw",
2: "y",
3: "abcdeilmprstvwy",
4: "abcdefghiklmopqrstuvwxyz~",
5: "abcdefghilmnoprstuvwxyz",
6: "csv",
- 7: "klw",
+ 7: "cklw",
8: "abcdefghijklmnopqrstuvwxyz",
9: "dl",
10: "gsy",
- 11: "bdpty"
+ 11: "abdlmpsty"
};
var indexSectionNames =
diff --git a/shader_8cpp.html b/shader_8cpp.html
index 7483407f..392a864d 100644
--- a/shader_8cpp.html
+++ b/shader_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('shader_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('shader_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -124,7 +108,7 @@ $(document).ready(function(){initNavTree('shader_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -132,15 +116,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="shader_8cpp.html">shader.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/shader_8h.html b/shader_8h.html
index ebff8cea..4ce95bd6 100644
--- a/shader_8h.html
+++ b/shader_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('shader_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('shader_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -115,8 +99,8 @@ $(document).ready(function(){initNavTree('shader_8h.html','');});
<p><hr/>
<a href="#details">More...</a></p>
-<div class="textblock"><code>#include &lt;glm/glm.hpp&gt;</code><br/>
-<code>#include &lt;glad/glad.h&gt;</code><br/>
+<div class="textblock"><code>#include &lt;glad/glad.h&gt;</code><br/>
+<code>#include &lt;glm/glm.hpp&gt;</code><br/>
<code>#include &lt;string&gt;</code><br/>
</div>
<p><a href="shader_8h_source.html">Go to the source code of this file.</a></p>
@@ -129,7 +113,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -137,15 +121,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="shader_8h.html">shader.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/shader_8h_source.html b/shader_8h_source.html
index 758d1811..235860bc 100644
--- a/shader_8h_source.html
+++ b/shader_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('shader_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('shader_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">shader.h</div> </div>
@@ -112,8 +96,8 @@ $(document).ready(function(){initNavTree('shader_8h_source.html','');});
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_SHADER_H</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_SHADER_H</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;glad/glad.h&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;glad/glad.h&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;glm/glm.hpp&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
@@ -154,15 +138,11 @@ $(document).ready(function(){initNavTree('shader_8h_source.html','');});
<div class="ttc" id="classyage_1_1Shader_html_a9307c4f3cfaf5e584b70601294e09bdd"><div class="ttname"><a href="classyage_1_1Shader.html#a9307c4f3cfaf5e584b70601294e09bdd">yage::Shader::~Shader</a></div><div class="ttdeci">~Shader()</div><div class="ttdef"><b>Definition:</b> shader.cpp:74</div></div>
<div class="ttc" id="classyage_1_1Shader_html_a8cd66c177f148ac0b619766188696e6c"><div class="ttname"><a href="classyage_1_1Shader.html#a8cd66c177f148ac0b619766188696e6c">yage::Shader::use</a></div><div class="ttdeci">void use() const </div><div class="ttdoc">compiles vertex and fragment shader </div><div class="ttdef"><b>Definition:</b> shader.cpp:82</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="shader_8h.html">shader.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/shape_8h.html b/shape_8h.html
index e5f29f8b..4cff86a6 100644
--- a/shape_8h.html
+++ b/shape_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('shape_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('shape_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -111,6 +95,10 @@ $(document).ready(function(){initNavTree('shape_8h.html','');});
<div class="title">shape.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="drawable_8h_source.html">drawable.h</a>&quot;</code><br/>
</div>
<p><a href="shape_8h_source.html">Go to the source code of this file.</a></p>
@@ -123,19 +111,19 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-</div><!-- contents -->
-</div><!-- doc-content -->
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="shape_8h.html">shape.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/shape_8h_source.html b/shape_8h_source.html
index 72193c3b..b15ecfb4 100644
--- a/shape_8h_source.html
+++ b/shape_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('shape_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,42 +82,44 @@ $(document).ready(function(){initNavTree('shape_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">shape.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="shape_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_SHAPE_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_SHAPE_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="drawable_8h.html">drawable.h</a>&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>yage</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classyage_1_1Shape.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Shape.html">Shape</a> : <span class="keyword">public</span> <a class="code" href="classyage_1_1Drawable.html">Drawable</a></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539">render</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;};</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;} <span class="comment">// namespace yage</span></div>
+<a href="shape_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_RENDER_SHAPE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_RENDER_SHAPE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="drawable_8h.html">drawable.h</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="classyage_1_1Shape_html"><div class="ttname"><a href="classyage_1_1Shape.html">yage::Shape</a></div><div class="ttdef"><b>Definition:</b> shape.h:9</div></div>
-<div class="ttc" id="drawable_8h_html"><div class="ttname"><a href="drawable_8h.html">drawable.h</a></div></div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classyage_1_1Shape.html"> 17</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Shape.html">Shape</a> : <span class="keyword">public</span> <a class="code" href="classyage_1_1Drawable.html">Drawable</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539">render</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1Shape_html"><div class="ttname"><a href="classyage_1_1Shape.html">yage::Shape</a></div><div class="ttdef"><b>Definition:</b> shape.h:17</div></div>
+<div class="ttc" id="drawable_8h_html"><div class="ttname"><a href="drawable_8h.html">drawable.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="classyage_1_1Shape_html_ab83fd121fe04debf98b42f29c919b539"><div class="ttname"><a href="classyage_1_1Shape.html#ab83fd121fe04debf98b42f29c919b539">yage::Shape::render</a></div><div class="ttdeci">virtual void render() const </div></div>
-<div class="ttc" id="classyage_1_1Drawable_html"><div class="ttname"><a href="classyage_1_1Drawable.html">yage::Drawable</a></div><div class="ttdef"><b>Definition:</b> drawable.h:9</div></div>
+<div class="ttc" id="classyage_1_1Drawable_html"><div class="ttname"><a href="classyage_1_1Drawable.html">yage::Drawable</a></div><div class="ttdef"><b>Definition:</b> drawable.h:17</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="shape_8h.html">shape.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/space_8cpp.html b/space_8cpp.html
new file mode 100644
index 00000000..f0735f34
--- /dev/null
+++ b/space_8cpp.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/space.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">space.cpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="space_8h_source.html">space.h</a>&quot;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/space_8h.html b/space_8h.html
new file mode 100644
index 00000000..4a479855
--- /dev/null
+++ b/space_8h.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/space.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">space.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+<code>#include &quot;<a class="el" href="entitymanager_8h_source.html">entitymanager.h</a>&quot;</code><br/>
+</div>
+<p><a href="space_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1Space.html">yage::Space</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1Space.html" title="Space that keeps track of all the entities, componenets and runs the systems on the data to update th...">Space</a> that keeps track of all the entities, componenets and runs the systems on the data to update them. <a href="classyage_1_1Space.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/space_8h_source.html b/space_8h_source.html
new file mode 100644
index 00000000..503ba584
--- /dev/null
+++ b/space_8h_source.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/space.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">space.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="space_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_ENGINE_SPACE_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_ENGINE_SPACE_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="entitymanager_8h.html">entitymanager.h</a>&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">class </span>System;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classyage_1_1Space.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1Space.html">Space</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">Space</a>();</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">createEntity</a>();</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;System *&gt; systems_;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classyage_1_1EntityManager.html">EntityManager</a> em_;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1EntityManager_html"><div class="ttname"><a href="classyage_1_1EntityManager.html">yage::EntityManager</a></div><div class="ttdoc">Manages entities in a space. </div><div class="ttdef"><b>Definition:</b> entitymanager.h:24</div></div>
+<div class="ttc" id="classyage_1_1Space_html_a40c248478ae521bb4e0d5119002cf8e9"><div class="ttname"><a href="classyage_1_1Space.html#a40c248478ae521bb4e0d5119002cf8e9">yage::Space::Space</a></div><div class="ttdeci">Space()</div><div class="ttdoc">Default instance for a space. </div><div class="ttdef"><b>Definition:</b> space.cpp:14</div></div>
+<div class="ttc" id="entitymanager_8h_html"><div class="ttname"><a href="entitymanager_8h.html">entitymanager.h</a></div><div class="ttdoc"> </div></div>
+<div class="ttc" id="classyage_1_1Space_html_a41bc332ffb3042c0872ede8c53ff1fa4"><div class="ttname"><a href="classyage_1_1Space.html#a41bc332ffb3042c0872ede8c53ff1fa4">yage::Space::createEntity</a></div><div class="ttdeci">unsigned createEntity()</div><div class="ttdoc">Create an entity that will belong to this space, and return the handle to the user. </div><div class="ttdef"><b>Definition:</b> space.cpp:16</div></div>
+<div class="ttc" id="classyage_1_1Space_html"><div class="ttname"><a href="classyage_1_1Space.html">yage::Space</a></div><div class="ttdoc">Space that keeps track of all the entities, componenets and runs the systems on the data to update th...</div><div class="ttdef"><b>Definition:</b> space.h:28</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/sprite_8cpp.html b/sprite_8cpp.html
index 48dad913..92255307 100644
--- a/sprite_8cpp.html
+++ b/sprite_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('sprite_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('sprite_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -122,7 +106,7 @@ $(document).ready(function(){initNavTree('sprite_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -130,15 +114,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="sprite_8cpp.html">sprite.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/sprite_8h.html b/sprite_8h.html
index b0ef3eb7..42dee1ee 100644
--- a/sprite_8h.html
+++ b/sprite_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('sprite_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('sprite_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -129,7 +113,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -137,15 +121,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="sprite_8h.html">sprite.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/sprite_8h_source.html b/sprite_8h_source.html
index 6ac2e051..55b8ab09 100644
--- a/sprite_8h_source.html
+++ b/sprite_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('sprite_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('sprite_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sprite.h</div> </div>
@@ -156,15 +140,11 @@ $(document).ready(function(){initNavTree('sprite_8h_source.html','');});
<div class="ttc" id="classyage_1_1Sprite_html_a97dd80e05efb9399ee8471ff40a77bee"><div class="ttname"><a href="classyage_1_1Sprite.html#a97dd80e05efb9399ee8471ff40a77bee">yage::Sprite::operator=</a></div><div class="ttdeci">Sprite &amp; operator=(const Sprite &amp;)=delete</div></div>
<div class="ttc" id="classyage_1_1Sprite_html"><div class="ttname"><a href="classyage_1_1Sprite.html">yage::Sprite</a></div><div class="ttdef"><b>Definition:</b> sprite.h:23</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="sprite_8h.html">sprite.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritebatch_8cpp.html b/spritebatch_8cpp.html
index 6b647e16..b8b27dcf 100644
--- a/spritebatch_8cpp.html
+++ b/spritebatch_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritebatch_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritebatch_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -124,7 +108,7 @@ $(document).ready(function(){initNavTree('spritebatch_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -132,15 +116,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="spritebatch_8cpp.html">spritebatch.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritebatch_8h.html b/spritebatch_8h.html
index 00db7b90..8c15a76d 100644
--- a/spritebatch_8h.html
+++ b/spritebatch_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritebatch_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritebatch_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -136,7 +120,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceyage_1_1details"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage_1_1details.html">yage::details</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -146,15 +130,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="spritebatch_8h.html">spritebatch.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritebatch_8h_source.html b/spritebatch_8h_source.html
index b0f83986..6d09183d 100644
--- a/spritebatch_8h_source.html
+++ b/spritebatch_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritebatch_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritebatch_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">spritebatch.h</div> </div>
@@ -217,20 +201,16 @@ $(document).ready(function(){initNavTree('spritebatch_8h_source.html','');});
<div class="ttc" id="structyage_1_1details_1_1Glyph_html_ae5398583bd0b4c1d6b334bf3902903d9"><div class="ttname"><a href="structyage_1_1details_1_1Glyph.html#ae5398583bd0b4c1d6b334bf3902903d9">yage::details::Glyph::depth</a></div><div class="ttdeci">float depth</div><div class="ttdef"><b>Definition:</b> spritebatch.h:41</div></div>
<div class="ttc" id="structyage_1_1Colour_html"><div class="ttname"><a href="structyage_1_1Colour.html">yage::Colour</a></div><div class="ttdef"><b>Definition:</b> vertex.h:26</div></div>
<div class="ttc" id="structyage_1_1details_1_1Glyph_html_a503ba9786cf0fe3535e968b607a001da"><div class="ttname"><a href="structyage_1_1details_1_1Glyph.html#a503ba9786cf0fe3535e968b607a001da">yage::details::Glyph::top_right</a></div><div class="ttdeci">Vertex top_right</div><div class="ttdef"><b>Definition:</b> spritebatch.h:43</div></div>
-<div class="ttc" id="batch_8h_html"><div class="ttname"><a href="batch_8h.html">batch.h</a></div></div>
+<div class="ttc" id="batch_8h_html"><div class="ttname"><a href="batch_8h.html">batch.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="structyage_1_1details_1_1Glyph_html"><div class="ttname"><a href="structyage_1_1details_1_1Glyph.html">yage::details::Glyph</a></div><div class="ttdoc">Glyph with information of the texture. </div><div class="ttdef"><b>Definition:</b> spritebatch.h:39</div></div>
<div class="ttc" id="structyage_1_1details_1_1RenderBatch_html_a27ed6f3911a6d7c8c2b6b4e5a5889b29"><div class="ttname"><a href="structyage_1_1details_1_1RenderBatch.html#a27ed6f3911a6d7c8c2b6b4e5a5889b29">yage::details::RenderBatch::num_vertices</a></div><div class="ttdeci">GLsizei num_vertices</div><div class="ttdef"><b>Definition:</b> spritebatch.h:28</div></div>
<div class="ttc" id="classyage_1_1SpriteBatch_html_afa26d86730be23aa5e0c8c4a9d67001a"><div class="ttname"><a href="classyage_1_1SpriteBatch.html#afa26d86730be23aa5e0c8c4a9d67001a">yage::SpriteBatch::~SpriteBatch</a></div><div class="ttdeci">~SpriteBatch()</div><div class="ttdef"><b>Definition:</b> spritebatch.cpp:55</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_059f34b87ae2c2af887b23a7e5e8e88f.html">render</a></li><li class="navelem"><a class="el" href="spritebatch_8h.html">spritebatch.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritebatch_8md.html b/spritebatch_8md.html
new file mode 100644
index 00000000..de6853f1
--- /dev/null
+++ b/spritebatch_8md.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: docs/spritebatch.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">docs/spritebatch.md File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/spritebatch_guide.html b/spritebatch_guide.html
new file mode 100644
index 00000000..adde1239
--- /dev/null
+++ b/spritebatch_guide.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: Sprite Batching</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Sprite Batching </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"></div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/spritesheet_8cpp.html b/spritesheet_8cpp.html
index f0cebe6e..22e252d3 100644
--- a/spritesheet_8cpp.html
+++ b/spritesheet_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritesheet_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritesheet_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -125,7 +109,7 @@ $(document).ready(function(){initNavTree('spritesheet_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -133,15 +117,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="spritesheet_8cpp.html">spritesheet.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritesheet_8h.html b/spritesheet_8h.html
index b4f3415c..87c0994d 100644
--- a/spritesheet_8h.html
+++ b/spritesheet_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritesheet_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritesheet_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -133,7 +117,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceyage_1_1details"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage_1_1details.html">yage::details</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -149,15 +133,11 @@ details::Coordinate &gt;&#160;</td><td class="memItemRight" valign="bottom"><a c
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="spritesheet_8h.html">spritesheet.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/spritesheet_8h.js b/spritesheet_8h.js
deleted file mode 100644
index e8d8b247..00000000
--- a/spritesheet_8h.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var spritesheet_8h =
-[
- [ "Coordinate", "structyage_1_1details_1_1Coordinate.html", "structyage_1_1details_1_1Coordinate" ],
- [ "SpriteSheet", "classyage_1_1SpriteSheet.html", "classyage_1_1SpriteSheet" ],
- [ "SpriteMap", "spritesheet_8h.html#a035f63ad1a3114ada8157ed4182521c9", null ]
-]; \ No newline at end of file
diff --git a/spritesheet_8h_source.html b/spritesheet_8h_source.html
index 6bef07cf..b4f2f701 100644
--- a/spritesheet_8h_source.html
+++ b/spritesheet_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('spritesheet_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('spritesheet_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">spritesheet.h</div> </div>
@@ -177,15 +161,11 @@ $(document).ready(function(){initNavTree('spritesheet_8h_source.html','');});
<div class="ttc" id="structyage_1_1details_1_1Coordinate_html_a6d54c056ec7bd3c7ed1c6a226c2cf508"><div class="ttname"><a href="structyage_1_1details_1_1Coordinate.html#a6d54c056ec7bd3c7ed1c6a226c2cf508">yage::details::Coordinate::y</a></div><div class="ttdeci">int y</div><div class="ttdef"><b>Definition:</b> spritesheet.h:33</div></div>
<div class="ttc" id="classyage_1_1SpriteSheet_html_a50a04ebc989dbc63b0aa6d873da5ccd9"><div class="ttname"><a href="classyage_1_1SpriteSheet.html#a50a04ebc989dbc63b0aa6d873da5ccd9">yage::SpriteSheet::fileContent</a></div><div class="ttdeci">std::string fileContent(std::string jsonFileName) const </div><div class="ttdef"><b>Definition:</b> spritesheet.cpp:41</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="spritesheet_8h.html">spritesheet.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:56 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/stb__image_8cpp.html b/stb__image_8cpp.html
index 861b3aae..ee353951 100644
--- a/stb__image_8cpp.html
+++ b/stb__image_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('stb__image_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('stb__image_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
@@ -131,15 +115,11 @@ Macros</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="stb__image_8cpp.html">stb_image.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/stb__image_8cpp.js b/stb__image_8cpp.js
deleted file mode 100644
index 97bc2d98..00000000
--- a/stb__image_8cpp.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var stb__image_8cpp =
-[
- [ "STB_IMAGE_IMPLEMENTATION", "stb__image_8cpp.html#a18372412ad2fc3ce1e3240b3cf0efe78", null ]
-]; \ No newline at end of file
diff --git a/stb__image_8h.html b/stb__image_8h.html
index 4cc16f21..b8765f96 100644
--- a/stb__image_8h.html
+++ b/stb__image_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('stb__image_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('stb__image_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -1478,15 +1462,11 @@ Functions</h2></td></tr>
</div>
</div>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="stb__image_8h.html">stb_image.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/stb__image_8h.js b/stb__image_8h.js
deleted file mode 100644
index 73799cb9..00000000
--- a/stb__image_8h.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var stb__image_8h =
-[
- [ "stbi_io_callbacks", "structstbi__io__callbacks.html", "structstbi__io__callbacks" ],
- [ "STBI_VERSION", "stb__image_8h.html#aed6cd14a3bf678808c4c179e808866aa", null ],
- [ "STBIDEF", "stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2", null ],
- [ "stbi_uc", "stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d", null ],
- [ "stbi_us", "stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2", null ],
- [ "STBI_default", "stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029", null ],
- [ "STBI_grey", "stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa", null ],
- [ "STBI_grey_alpha", "stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8", null ],
- [ "STBI_rgb", "stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf", null ],
- [ "STBI_rgb_alpha", "stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293", null ],
- [ "stbi_convert_iphone_png_to_rgb", "stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b", null ],
- [ "stbi_failure_reason", "stb__image_8h.html#aa874b3ba909f3281d499894909678336", null ],
- [ "stbi_hdr_to_ldr_gamma", "stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e", null ],
- [ "stbi_hdr_to_ldr_scale", "stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258", null ],
- [ "stbi_image_free", "stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb", null ],
- [ "stbi_info", "stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70", null ],
- [ "stbi_info_from_callbacks", "stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363", null ],
- [ "stbi_info_from_file", "stb__image_8h.html#a28abedef4a0a93909332080df6be0021", null ],
- [ "stbi_info_from_memory", "stb__image_8h.html#acfef077febce3bc3f1f339de478f3315", null ],
- [ "stbi_is_hdr", "stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c", null ],
- [ "stbi_is_hdr_from_callbacks", "stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077", null ],
- [ "stbi_is_hdr_from_file", "stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524", null ],
- [ "stbi_is_hdr_from_memory", "stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e", null ],
- [ "stbi_ldr_to_hdr_gamma", "stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb", null ],
- [ "stbi_ldr_to_hdr_scale", "stb__image_8h.html#af946583656a362a316b40c0421c20561", null ],
- [ "stbi_load", "stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048", null ],
- [ "stbi_load_16", "stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee", null ],
- [ "stbi_load_16_from_callbacks", "stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18", null ],
- [ "stbi_load_16_from_memory", "stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a", null ],
- [ "stbi_load_from_callbacks", "stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7", null ],
- [ "stbi_load_from_file", "stb__image_8h.html#aa9994764695597161e8f3776e97caa99", null ],
- [ "stbi_load_from_file_16", "stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c", null ],
- [ "stbi_load_from_memory", "stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f", null ],
- [ "stbi_loadf", "stb__image_8h.html#af4f17acd30945a75901fdc022f90575f", null ],
- [ "stbi_loadf_from_callbacks", "stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb", null ],
- [ "stbi_loadf_from_file", "stb__image_8h.html#ace82446ecd7b5c760cde062179660f46", null ],
- [ "stbi_loadf_from_memory", "stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2", null ],
- [ "stbi_set_flip_vertically_on_load", "stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4", null ],
- [ "stbi_set_unpremultiply_on_load", "stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9", null ],
- [ "stbi_zlib_decode_buffer", "stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48", null ],
- [ "stbi_zlib_decode_malloc", "stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e", null ],
- [ "stbi_zlib_decode_malloc_guesssize", "stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79", null ],
- [ "stbi_zlib_decode_malloc_guesssize_headerflag", "stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27", null ],
- [ "stbi_zlib_decode_noheader_buffer", "stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e", null ],
- [ "stbi_zlib_decode_noheader_malloc", "stb__image_8h.html#a7fbd65c83495f13f22469fe493775739", null ]
-]; \ No newline at end of file
diff --git a/stb__image_8h_source.html b/stb__image_8h_source.html
index 18aab9c3..8152bc3b 100644
--- a/stb__image_8h_source.html
+++ b/stb__image_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,72 +82,77 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">stb_image.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="stb__image_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* stb_image - v2.16 - public domain image loader - http://nothings.org/stb_image.h</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> no warranty implied; use at your own risk</span></div>
+<a href="stb__image_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* stb_image - v2.16 - public domain image loader -</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">http://nothings.org/stb_image.h no warranty implied; use at your own risk</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> Do this:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> #define STB_IMAGE_IMPLEMENTATION</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> before you include this file in *one* C or C++ file to create the implementation.</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> // i.e. it should look like this:</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> #include ...</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> before you include this file in *one* C or C++ file to create the</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">implementation.</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> // i.e. it should look like this:</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> #include ...</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> #include ...</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> #define STB_IMAGE_IMPLEMENTATION</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> #include &quot;stb_image.h&quot;</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> QUICK NOTES:</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> Primarily of interest to game developers and other people who can</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> avoid problematic images and only need the trivial interface</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> JPEG baseline &amp; progressive (12 bpc/arithmetic not supported, same as stock IJG lib)</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> PNG 1/2/4/8/16-bit-per-channel</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> TGA (not sure what subset, if a subset)</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> BMP non-1bpp, non-RLE</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> PSD (composited view only, no extra channels, 8/16 bit-per-channel)</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> GIF (*comp always reports as 4-channel)</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> HDR (radiance rgbE format)</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> PIC (Softimage PIC)</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> PNM (PPM and PGM binary only)</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> Animated GIF still needs a proper API, but here&#39;s one way to do it:</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> http://gist.github.com/urraka/685d9a6340b26b830d49</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> - decode from memory or through FILE (define STBI_NO_STDIO to remove code)</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> - decode from arbitrary I/O callbacks</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> Full documentation under &quot;DOCUMENTATION&quot; below.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> #include ...</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> #define STB_IMAGE_IMPLEMENTATION</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> #include &quot;stb_image.h&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">malloc,realloc,free</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> QUICK NOTES:</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> Primarily of interest to game developers and other people who can</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> avoid problematic images and only need the trivial interface</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> JPEG baseline &amp; progressive (12 bpc/arithmetic not supported, same as</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">stock IJG lib) PNG 1/2/4/8/16-bit-per-channel</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> TGA (not sure what subset, if a subset)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> BMP non-1bpp, non-RLE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> PSD (composited view only, no extra channels, 8/16 bit-per-channel)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> GIF (*comp always reports as 4-channel)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> HDR (radiance rgbE format)</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> PIC (Softimage PIC)</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> PNM (PPM and PGM binary only)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> Animated GIF still needs a proper API, but here&#39;s one way to do it:</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> http://gist.github.com/urraka/685d9a6340b26b830d49</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> - decode from memory or through FILE (define STBI_NO_STDIO to remove code)</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> - decode from arbitrary I/O callbacks</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">LICENSE</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> Full documentation under &quot;DOCUMENTATION&quot; below.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> See end of file for license information.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">LICENSE</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">RECENT REVISION HISTORY:</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> See end of file for license information.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> RGB-format JPEG; remove white matting in PSD;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> allocate large structures on the stack;</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> correct channel count for PNG &amp; BMP</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> 2.10 (2016-01-22) avoid warning introduced in 2.09</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">RECENT REVISION HISTORY:</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> 2.16 (2017-07-23) all functions have 16-bit variants; optimizations;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">bugfixes 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">detection on GCC 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">Imagenet JPGs 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">fixes 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes 2.11</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">(2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 RGB-format JPEG; remove</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">white matting in PSD; allocate large structures on the stack; correct channel</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">count for PNG &amp; BMP 2.10 (2016-01-22) avoid warning introduced in 2.09 2.09</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">(2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> See end of file for full revision history.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"></span></div>
@@ -186,55 +170,55 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> github:urraka (animated gif) Junggon Kim (PNM comments)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Daniel Gibson (16-bit TGA)</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> socks-the-fox (16-bit PNG)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> Jeremy Sawicki (handle all ImageNet JPGs)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> Optimizations &amp; bugfixes</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> Fabian &quot;ryg&quot; Giesen</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> Arseny Kapoulkine</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> John-Mark Allen</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> Bug &amp; warning fixes</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> Marc LeBlanc David Woo Guillaume George Martins Mozeiko</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> Christpher Lloyd Jerry Jansson Joseph Thomson Phil Jordan</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> Dave Moore Roy Eltham Hayaki Saito Nathan Reed</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> Won Chun Luke Graham Johan Duparc Nick Verigakis</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> the Horde3D community Thomas Ruf Ronny Chevalier Baldur Karlsson</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> Janez Zemva John Bartholomew Michal Cichon github:rlyeh</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> Jonathan Blow Ken Hamada Tero Hanninen github:romigrou</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> Laurent Gomila Cort Stratton Sergio Gonzalez github:svdijk</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> Aruelien Pocheville Thibault Reuille Cass Everitt github:snagar</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> Ryamond Barbiero Paul Du Bois Engin Manap github:Zelex</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> Michaelangel007@github Philipp Wiesemann Dale Weiler github:grim210</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> Oriol Ferrer Mesia Josh Tobin Matthew Gregan github:sammyhw</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> Blazej Dariusz Roszkowski Gregory Mullen github:phprus</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> Christian Floisand Kevin Schmidt github:poppolopoppo</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#ifndef STBI_INCLUDE_STB_IMAGE_H</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_INCLUDE_STB_IMAGE_H</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">// DOCUMENTATION</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// Limitations:</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// - no 16-bit-per-channel PNG</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">// - no 12-bit-per-channel JPEG</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// - no JPEGs with arithmetic coding</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// - no 1-bit BMP</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// - GIF always returns *comp=4</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// Basic usage (see HDR discussion below for HDR usage):</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// int x,y,n;</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// unsigned char *data = stbi_load(filename, &amp;x, &amp;y, &amp;n, 0);</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// // ... process data if not NULL ...</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// // ... x = width, y = height, n = # 8-bit components per pixel ...</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// // ... replace &#39;0&#39; with &#39;1&#39;..&#39;4&#39; to force that many components per pixel</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// // ... but &#39;n&#39; will always be the number that it would have been if you said 0</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// stbi_image_free(data)</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// Standard parameters:</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// int *x -- outputs image width in pixels</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// int *y -- outputs image height in pixels</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// int *channels_in_file -- outputs # of image components in image file</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// int desired_channels -- if non-zero, # of image components requested in result</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> Jeremy Sawicki (handle all ImageNet</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">JPGs) Optimizations &amp; bugfixes Fabian &quot;ryg&quot; Giesen Arseny Kapoulkine John-Mark</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">Allen</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> Bug &amp; warning fixes</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> Marc LeBlanc David Woo Guillaume George Martins</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">Mozeiko Christpher Lloyd Jerry Jansson Joseph Thomson Phil</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">Jordan Dave Moore Roy Eltham Hayaki Saito Nathan Reed</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> Won Chun Luke Graham Johan Duparc Nick Verigakis</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> the Horde3D community Thomas Ruf Ronny Chevalier Baldur</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">Karlsson Janez Zemva John Bartholomew Michal Cichon</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">github:rlyeh Jonathan Blow Ken Hamada Tero Hanninen</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">github:romigrou Laurent Gomila Cort Stratton Sergio Gonzalez</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">github:svdijk Aruelien Pocheville Thibault Reuille Cass Everitt</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">github:snagar Ryamond Barbiero Paul Du Bois Engin Manap</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">github:Zelex Michaelangel007@github Philipp Wiesemann Dale Weiler</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">github:grim210 Oriol Ferrer Mesia Josh Tobin Matthew Gregan</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">github:sammyhw Blazej Dariusz Roszkowski Gregory Mullen</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">github:phprus Christian Floisand Kevin Schmidt</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">github:poppolopoppo</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#ifndef STBI_INCLUDE_STB_IMAGE_H</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_INCLUDE_STB_IMAGE_H</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// DOCUMENTATION</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// Limitations:</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// - no 16-bit-per-channel PNG</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// - no 12-bit-per-channel JPEG</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">// - no JPEGs with arithmetic coding</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// - no 1-bit BMP</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// - GIF always returns *comp=4</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">// Basic usage (see HDR discussion below for HDR usage):</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// int x,y,n;</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// unsigned char *data = stbi_load(filename, &amp;x, &amp;y, &amp;n, 0);</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// // ... process data if not NULL ...</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// // ... x = width, y = height, n = # 8-bit components per pixel ...</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// // ... replace &#39;0&#39; with &#39;1&#39;..&#39;4&#39; to force that many components per pixel</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// // ... but &#39;n&#39; will always be the number that it would have been if you</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// said 0 stbi_image_free(data)</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// Standard parameters:</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// int *x -- outputs image width in pixels</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// int *y -- outputs image height in pixels</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// int *channels_in_file -- outputs # of image components in image file</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// int desired_channels -- if non-zero, # of image components requested in</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// result</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// The return value from an image loader is an &#39;unsigned char *&#39; which points</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">// to the pixel data, or NULL on an allocation failure or if the image is</span></div>
@@ -262,8 +246,8 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// and *x, *y, *channels_in_file will be unchanged. The function</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// stbi_failure_reason() can be queried for an extremely brief, end-user</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// more user-friendly ones.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// slightly more user-friendly ones.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized.</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">//</span></div>
@@ -277,154 +261,154 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">// 2. easy to maintain</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// 3. good performance</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">// Sometimes I let &quot;good performance&quot; creep up in priority over &quot;easy to maintain&quot;,</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// and for best performance I may provide less-easy-to-use APIs that give higher</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// performance, in addition to the easy to use ones. Nevertheless, it&#39;s important</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// to keep in mind that from the standpoint of you, a client of this library,</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all.</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// Some secondary priorities arise directly from the first two, some of which</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// make more explicit reasons why performance can&#39;t be emphasized.</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// - Portable (&quot;ease of use&quot;)</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// - Small source code footprint (&quot;easy to maintain&quot;)</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// - No dependencies (&quot;ease of use&quot;)</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// ===========================================================================</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// I/O callbacks</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// I/O callbacks allow you to read from arbitrary sources, like packaged</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// files or some other source. Data read from callbacks are processed</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// through a small internal buffer (currently 128 bytes) to try to reduce</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// overhead.</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">// The three functions you must define are &quot;read&quot; (reads some bytes of data),</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// &quot;skip&quot; (skips some bytes of data), &quot;eof&quot; (reports if the stream is at the end).</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// ===========================================================================</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">// Sometimes I let &quot;good performance&quot; creep up in priority over &quot;easy to</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// maintain&quot;, and for best performance I may provide less-easy-to-use APIs that</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// give higher performance, in addition to the easy to use ones. Nevertheless,</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// it&#39;s important to keep in mind that from the standpoint of you, a client of</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// this library, all you care about is #1 and #3, and stb libraries DO NOT</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// emphasize #3 above all.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// Some secondary priorities arise directly from the first two, some of which</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// make more explicit reasons why performance can&#39;t be emphasized.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// - Portable (&quot;ease of use&quot;)</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// - Small source code footprint (&quot;easy to maintain&quot;)</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// - No dependencies (&quot;ease of use&quot;)</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">// ===========================================================================</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// I/O callbacks</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// I/O callbacks allow you to read from arbitrary sources, like packaged</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// files or some other source. Data read from callbacks are processed</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// through a small internal buffer (currently 128 bytes) to try to reduce</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// overhead.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// The three functions you must define are &quot;read&quot; (reads some bytes of data),</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// &quot;skip&quot; (skips some bytes of data), &quot;eof&quot; (reports if the stream is at the</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// end).</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// SIMD support</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// ===========================================================================</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// The JPEG decoder will try to automatically use SIMD kernels on x86 when</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// supported by the compiler. For ARM Neon support, you must explicitly</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// request it.</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// (The old do-it-yourself SIMD API is no longer supported in the current</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// code.)</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// On x86, SSE2 will automatically be used when available based on a run-time</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// test; if not, the generic C versions are used as a fall-back. On ARM targets,</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// the typical path is to have separate builds for NEON and non-NEON devices</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// (at least this is true for iOS and Android). Therefore, the NEON support is</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// toggled by a build flag: define STBI_NEON to get NEON loops.</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment">// If for some reason you do not want to use any of SIMD code, or if</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">// you have issues compiling it, you can disable it entirely by</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// defining STBI_NO_SIMD.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// ===========================================================================</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// SIMD support</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// The JPEG decoder will try to automatically use SIMD kernels on x86 when</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// supported by the compiler. For ARM Neon support, you must explicitly</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// request it.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// (The old do-it-yourself SIMD API is no longer supported in the current</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// code.)</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// On x86, SSE2 will automatically be used when available based on a run-time</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// test; if not, the generic C versions are used as a fall-back. On ARM targets,</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// the typical path is to have separate builds for NEON and non-NEON devices</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// (at least this is true for iOS and Android). Therefore, the NEON support is</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment">// toggled by a build flag: define STBI_NEON to get NEON loops.</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// If for some reason you do not want to use any of SIMD code, or if</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// you have issues compiling it, you can disable it entirely by</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// defining STBI_NO_SIMD.</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// HDR image support (disable by defining STBI_NO_HDR)</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// ===========================================================================</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">// stb_image now supports loading HDR images in general, and currently</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// the Radiance .HDR file format, although the support is provided</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// generically. You can still load any file through the existing interface;</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// if you attempt to load an HDR file, it will be automatically remapped to</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">// LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">// both of these constants can be reconfigured through this interface:</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// stbi_hdr_to_ldr_gamma(2.2f);</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment">// stbi_hdr_to_ldr_scale(1.0f);</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// (note, do not use _inverse_ constants; stbi_image will invert them</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// appropriately).</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// Additionally, there is a new, parallel interface for loading files as</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// (linear) floats to preserve the full dynamic range:</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment">// float *data = stbi_loadf(filename, &amp;x, &amp;y, &amp;n, 0);</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">// HDR image support (disable by defining STBI_NO_HDR)</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// stb_image now supports loading HDR images in general, and currently</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// the Radiance .HDR file format, although the support is provided</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">// generically. You can still load any file through the existing interface;</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">// if you attempt to load an HDR file, it will be automatically remapped to</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// both of these constants can be reconfigured through this interface:</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// stbi_hdr_to_ldr_gamma(2.2f);</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// stbi_hdr_to_ldr_scale(1.0f);</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">// (note, do not use _inverse_ constants; stbi_image will invert them</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// appropriately).</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// Additionally, there is a new, parallel interface for loading files as</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment">// (linear) floats to preserve the full dynamic range:</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// If you load LDR images through this interface, those images will</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// be promoted to floating point values, run through the inverse of</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// constants corresponding to the above:</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// stbi_ldr_to_hdr_scale(1.0f);</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// stbi_ldr_to_hdr_gamma(2.2f);</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// Finally, given a filename (or an open file or memory block--see header</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// file for details) containing image data, you can query for the &quot;most</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// appropriate&quot; interface to use (that is, whether the image is HDR or</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// not), using:</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// stbi_is_hdr(char *filename);</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// float *data = stbi_loadf(filename, &amp;x, &amp;y, &amp;n, 0);</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// If you load LDR images through this interface, those images will</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// be promoted to floating point values, run through the inverse of</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// constants corresponding to the above:</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">// stbi_ldr_to_hdr_scale(1.0f);</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// stbi_ldr_to_hdr_gamma(2.2f);</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// Finally, given a filename (or an open file or memory block--see header</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// file for details) containing image data, you can query for the &quot;most</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">// appropriate&quot; interface to use (that is, whether the image is HDR or</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// not), using:</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">// ===========================================================================</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">// stbi_is_hdr(char *filename);</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">// iPhone PNG support:</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">// ===========================================================================</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// By default we convert iphone-formatted PNGs back to RGB, even though</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// they are internally encoded differently. You can disable this conversion</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// by by calling stbi_convert_iphone_png_to_rgb(0), in which case</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// you will always just get the native iphone &quot;format&quot; through (which</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// is BGR stored in RGB).</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// pixel to remove any premultiplied alpha *only* if the image file explicitly</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// says there&#39;s premultiplied data (currently only happens in iPhone images,</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">// and only if iPhone convert-to-rgb processing is on).</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment">// ===========================================================================</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// iPhone PNG support:</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// By default we convert iphone-formatted PNGs back to RGB, even though</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// they are internally encoded differently. You can disable this conversion</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// by by calling stbi_convert_iphone_png_to_rgb(0), in which case</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// you will always just get the native iphone &quot;format&quot; through (which</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// is BGR stored in RGB).</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">// pixel to remove any premultiplied alpha *only* if the image file explicitly</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">// says there&#39;s premultiplied data (currently only happens in iPhone images,</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment">// and only if iPhone convert-to-rgb processing is on).</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">// ADDITIONAL CONFIGURATION</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">// ===========================================================================</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">// - You can suppress implementation of any of the decoders to reduce</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment">// your code footprint by #defining one or more of the following</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// symbols before creating the implementation.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// STBI_NO_JPEG</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">// STBI_NO_PNG</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment">// STBI_NO_BMP</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// STBI_NO_PSD</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">// STBI_NO_TGA</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">// STBI_NO_GIF</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// STBI_NO_HDR</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// STBI_NO_PIC</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">// STBI_NO_PNM (.ppm and .pgm)</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment">// - You can request *only* certain decoders and suppress all other ones</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">// (this will be more forward-compatible, as addition of new decoders</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// doesn&#39;t require you to disable them explicitly):</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// STBI_ONLY_JPEG</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">// STBI_ONLY_PNG</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment">// STBI_ONLY_BMP</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment">// STBI_ONLY_PSD</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment">// STBI_ONLY_TGA</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment">// STBI_ONLY_GIF</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment">// STBI_ONLY_HDR</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment">// STBI_ONLY_PIC</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment">// STBI_ONLY_PNM (.ppm and .pgm)</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment">// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#endif // STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="stb__image_8h.html#aed6cd14a3bf678808c4c179e808866aa"> 308</a></span>&#160;<span class="preprocessor">#define STBI_VERSION 1</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="keyword">enum</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div>
-<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029"> 312</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029">STBI_default</a> = 0, <span class="comment">// only used for desired_channels</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">// ADDITIONAL CONFIGURATION</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// - You can suppress implementation of any of the decoders to reduce</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">// your code footprint by #defining one or more of the following</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// symbols before creating the implementation.</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment">// STBI_NO_JPEG</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// STBI_NO_PNG</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">// STBI_NO_BMP</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">// STBI_NO_PSD</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// STBI_NO_TGA</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// STBI_NO_GIF</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">// STBI_NO_HDR</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment">// STBI_NO_PIC</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment">// STBI_NO_PNM (.ppm and .pgm)</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// - You can request *only* certain decoders and suppress all other ones</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// (this will be more forward-compatible, as addition of new decoders</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// doesn&#39;t require you to disable them explicitly):</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment">// STBI_ONLY_JPEG</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment">// STBI_ONLY_PNG</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment">// STBI_ONLY_BMP</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment">// STBI_ONLY_PSD</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment">// STBI_ONLY_TGA</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment">// STBI_ONLY_GIF</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment">// STBI_ONLY_HDR</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// STBI_ONLY_PIC</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">// STBI_ONLY_PNM (.ppm and .pgm)</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment">// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment">// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="stb__image_8h.html#aed6cd14a3bf678808c4c179e808866aa"> 309</a></span>&#160;<span class="preprocessor">#define STBI_VERSION 1</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029"> 312</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0177ac2c5002f4f251bb766d41752029">STBI_default</a> = 0, <span class="comment">// only used for desired_channels</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa"> 314</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa">STBI_grey</a> = 1,</div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8"> 315</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8">STBI_grey_alpha</a> = 2,</div>
-<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf"> 316</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a> = 3,</div>
-<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293"> 317</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293">STBI_rgb_alpha</a> = 4</div>
+<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa"> 314</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa">STBI_grey</a> = 1,</div>
+<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8"> 315</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8">STBI_grey_alpha</a> = 2,</div>
+<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf"> 316</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a> = 3,</div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293"> 317</a></span>&#160; <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa7b1af0c9f0310c3ada2aa29a32de293">STBI_rgb_alpha</a> = 4</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;};</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d"> 320</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>;</div>
@@ -448,6844 +432,7814 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">// load image by filename, open file, or memory buffer</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html"> 342</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;{</div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a73818f0a4f467e5abfefb1d635f62d82"> 344</a></span>&#160; int (*read) (<span class="keywordtype">void</span> *user,<span class="keywordtype">char</span> *data,<span class="keywordtype">int</span> size); <span class="comment">// fill &#39;data&#39; with &#39;size&#39; bytes. return number of bytes actually read</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83"> 345</a></span>&#160; void (*skip) (<span class="keywordtype">void</span> *user,<span class="keywordtype">int</span> n); <span class="comment">// skip the next &#39;n&#39; bytes, or &#39;unget&#39; the last -n bytes if negative</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177"> 346</a></span>&#160; int (*eof) (<span class="keywordtype">void</span> *user); <span class="comment">// returns nonzero if we are at end of file/data</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;} <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a>;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// 8-bits-per-channel interface</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html"> 342</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a73818f0a4f467e5abfefb1d635f62d82"> 343</a></span>&#160; int (*read)(<span class="keywordtype">void</span> *user, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> size); <span class="comment">// fill &#39;data&#39; with &#39;size&#39;</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// bytes. return number of</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">// bytes actually read</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83"> 346</a></span>&#160; void (*skip)(<span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> n); <span class="comment">// skip the next &#39;n&#39; bytes, or &#39;unget&#39; the</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="comment">// last -n bytes if negative</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177"> 348</a></span>&#160; int (*eof)(<span class="keywordtype">void</span> *user); <span class="comment">// returns nonzero if we are at end of file/data</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;} <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f">stbi_load_from_memory</a> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len , <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7">stbi_load_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk , <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048">stbi_load</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a> (FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">// for stbi_load_from_file, file pointer is left pointing immediately after image</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">// 16-bits-per-channel interface</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a">stbi_load_16_from_memory</a> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18">stbi_load_16_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee">stbi_load_16</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// 8-bits-per-channel interface</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f">stbi_load_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7">stbi_load_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048">stbi_load</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">// for stbi_load_from_file, file pointer is left pointing immediately after</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// image</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">// 16-bits-per-channel interface</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// float-per-channel interface</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"></span> <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2">stbi_loadf_from_memory</a> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb">stbi_loadf_from_callbacks</a> (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"></span> <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#af4f17acd30945a75901fdc022f90575f">stbi_loadf</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a> (FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"></span> <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e">stbi_hdr_to_ldr_gamma</a>(<span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258">stbi_hdr_to_ldr_scale</a>(<span class="keywordtype">float</span> scale);</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#endif // STBI_NO_HDR</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a">stbi_load_16_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18">stbi_load_16_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee">stbi_load_16</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"></span> <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb">stbi_ldr_to_hdr_gamma</a>(<span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#af946583656a362a316b40c0421c20561">stbi_ldr_to_hdr_scale</a>(<span class="keywordtype">float</span> scale);</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor">#endif // STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment">// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077">stbi_is_hdr_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user);</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e">stbi_is_hdr_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c">stbi_is_hdr</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(FILE *f);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#endif // STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment">// get a VERY brief reason for failure</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="comment">// NOT THREADSAFE</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aa874b3ba909f3281d499894909678336">stbi_failure_reason</a> (<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">// free the loaded image -- this is just free()</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb">stbi_image_free</a> (<span class="keywordtype">void</span> *retval_from_stbi_load);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="comment">// get image dimensions &amp; components without fully decoding</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#acfef077febce3bc3f1f339de478f3315">stbi_info_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363">stbi_info_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70">stbi_info</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a> (FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// for image formats that explicitly notate that they have premultiplied alpha,</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment">// we just return the colors as stored in the file. set this flag to force</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// unpremultiplication. results are undefined if the unpremultiply overflow.</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9">stbi_set_unpremultiply_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_unpremultiply);</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">// indicate whether we should process iphone images back to canonical format,</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment">// or just pass them through &quot;as-is&quot;</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b">stbi_convert_iphone_png_to_rgb</a>(<span class="keywordtype">int</span> flag_true_if_should_convert);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// flip the image vertically, so the first pixel in the output array is the bottom left</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4">stbi_set_flip_vertically_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_flip);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment">// float-per-channel interface</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2">stbi_loadf_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb">stbi_loadf_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#af4f17acd30945a75901fdc022f90575f">stbi_loadf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">int</span> desired_channels);</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e">stbi_hdr_to_ldr_gamma</a>(<span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258">stbi_hdr_to_ldr_scale</a>(<span class="keywordtype">float</span> scale);</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#endif // STBI_NO_HDR</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb">stbi_ldr_to_hdr_gamma</a>(<span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#af946583656a362a316b40c0421c20561">stbi_ldr_to_hdr_scale</a>(<span class="keywordtype">float</span> scale);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor">#endif // STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment">// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077">stbi_is_hdr_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">void</span> *user);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e">stbi_is_hdr_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len);</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c">stbi_is_hdr</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename);</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(FILE *f);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#endif // STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment">// get a VERY brief reason for failure</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// NOT THREADSAFE</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aa874b3ba909f3281d499894909678336">stbi_failure_reason</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment">// ZLIB client - used by PNG, available for other purposes</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen);</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen, <span class="keywordtype">int</span> parse_header);</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e">stbi_zlib_decode_malloc</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen);</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48">stbi_zlib_decode_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen, <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen);</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a7fbd65c83495f13f22469fe493775739">stbi_zlib_decode_noheader_malloc</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e">stbi_zlib_decode_noheader_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen, <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen);</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment">// free the loaded image -- this is just free()</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb">stbi_image_free</a>(<span class="keywordtype">void</span> *retval_from_stbi_load);</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment">// get image dimensions &amp; components without fully decoding</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#acfef077febce3bc3f1f339de478f3315">stbi_info_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363">stbi_info_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user,</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70">stbi_info</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="comment"></span><span class="preprocessor">#endif // STBI_INCLUDE_STB_IMAGE_H</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#ifdef STB_IMAGE_IMPLEMENTATION</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor">#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> || defined(STBI_ONLY_ZLIB)</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_JPEG</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_JPEG</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_PNG</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_PNG</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_BMP</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_BMP</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_PSD</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_PSD</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_TGA</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_TGA</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_GIF</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_GIF</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_HDR</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_HDR</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_PIC</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_PIC</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_ONLY_PNM</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI_NO_PNM</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#if defined(STBI_NO_PNG) &amp;&amp; !defined(STBI_SUPPORT_ZLIB) &amp;&amp; !defined(STBI_NO_ZLIB)</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_ZLIB</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span> <span class="comment">// ptrdiff_t on osx</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#include &lt;limits.h&gt;</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;math.h&gt;</span> <span class="comment">// ldexp</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#ifndef STBI_ASSERT</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#define STBI_ASSERT(x) assert(x)</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment">// for image formats that explicitly notate that they have premultiplied alpha,</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment">// we just return the colors as stored in the file. set this flag to force</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment">// unpremultiplication. results are undefined if the unpremultiply overflow.</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<a class="code" href="stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9">stbi_set_unpremultiply_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_unpremultiply);</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment">// indicate whether we should process iphone images back to canonical format,</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment">// or just pass them through &quot;as-is&quot;</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b">stbi_convert_iphone_png_to_rgb</a>(<span class="keywordtype">int</span> flag_true_if_should_convert);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="comment">// flip the image vertically, so the first pixel in the output array is the</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="comment">// bottom left</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4">stbi_set_flip_vertically_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_flip);</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment">// ZLIB client - used by PNG, available for other purposes</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen);</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer,</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordtype">int</span> initial_size,</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordtype">int</span> *outlen,</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">int</span> parse_header);</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e">stbi_zlib_decode_malloc</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen);</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48">stbi_zlib_decode_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen,</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen);</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a7fbd65c83495f13f22469fe493775739">stbi_zlib_decode_noheader_malloc</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">int</span> *outlen);</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e">stbi_zlib_decode_noheader_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen,</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen);</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="comment"></span><span class="preprocessor">#endif // STBI_INCLUDE_STB_IMAGE_H</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#ifdef STB_IMAGE_IMPLEMENTATION</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor">#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> defined(STBI_ONLY_BMP) || defined(STBI_ONLY_TGA) || \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) || \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> defined(STBI_ONLY_PNM) || defined(STBI_ONLY_ZLIB)</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_JPEG</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_JPEG</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_PNG</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_PNG</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_BMP</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_BMP</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_PSD</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_PSD</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_TGA</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_TGA</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#ifndef _MSC_VER</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifdef __cplusplus</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi_inline inline</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi_inline</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi_inline __forceinline</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> stbi__uint16;</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> stbi__int16;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stbi__uint32;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> stbi__int32;</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="keyword">typedef</span> uint16_t stbi__uint16;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="keyword">typedef</span> int16_t stbi__int16;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="keyword">typedef</span> uint32_t stbi__uint32;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="keyword">typedef</span> int32_t stbi__int32;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="comment">// should produce compiler error if size is wrong</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> validate_uint32[<span class="keyword">sizeof</span>(stbi__uint32)==4 ? 1 : -1];</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NOTUSED(v) (void)(v)</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NOTUSED(v) (void)sizeof(v)</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_HAS_LROTL</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor">#ifdef STBI_HAS_LROTL</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi_lrot(x,y) _lrotl(x,y)</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_GIF</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_GIF</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_HDR</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_HDR</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_PIC</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_PIC</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_ONLY_PNM</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_PNM</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#if defined(STBI_NO_PNG) &amp;&amp; !defined(STBI_SUPPORT_ZLIB) &amp;&amp; \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> !defined(STBI_NO_ZLIB)</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NO_ZLIB</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor">#include &lt;limits.h&gt;</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span> <span class="comment">// ptrdiff_t on osx</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor">#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;math.h&gt;</span> <span class="comment">// ldexp</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#ifndef STBI_ASSERT</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor">#define STBI_ASSERT(x) assert(x)</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor">#ifndef _MSC_VER</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi_inline inline</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi_lrot(x,y) (((x) &lt;&lt; (y)) | ((x) &gt;&gt; (32 - (y))))</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi_inline</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor">#if defined(STBI_MALLOC) &amp;&amp; defined(STBI_FREE) &amp;&amp; (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"></span><span class="comment">// ok</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor">#elif !defined(STBI_MALLOC) &amp;&amp; !defined(STBI_FREE) &amp;&amp; !defined(STBI_REALLOC) &amp;&amp; !defined(STBI_REALLOC_SIZED)</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"></span><span class="comment">// ok</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error &quot;Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED).&quot;</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor">#ifndef STBI_MALLOC</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_MALLOC(sz) malloc(sz)</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_REALLOC(p,newsz) realloc(p,newsz)</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_FREE(p) free(p)</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#ifndef STBI_REALLOC_SIZED</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz)</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment">// x86/x64 detection</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor">#if defined(__x86_64__) || defined(_M_X64)</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__X64_TARGET</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(__i386) || defined(_M_IX86)</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__X86_TARGET</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi_inline __forceinline</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> stbi__uint16;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> stbi__int16;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stbi__uint32;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> stbi__int32;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="keyword">typedef</span> uint16_t stbi__uint16;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="keyword">typedef</span> int16_t stbi__int16;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="keyword">typedef</span> uint32_t stbi__uint32;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="keyword">typedef</span> int32_t stbi__int32;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment">// should produce compiler error if size is wrong</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> validate_uint32[<span class="keyword">sizeof</span>(stbi__uint32) == 4 ? 1 : -1];</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NOTUSED(v) (void)(v)</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_NOTUSED(v) (void)sizeof(v)</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; defined(STBI__X86_TARGET) &amp;&amp; !defined(__SSE2__) &amp;&amp; !defined(STBI_NO_SIMD)</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"></span><span class="comment">// gcc doesn&#39;t support sse2 intrinsics unless you compile with -msse2,</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment">// which in turn means it gets to use SSE2 everywhere. This is unfortunate,</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment">// but previous attempts to provide the SSE2 functions with runtime</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment">// detection caused numerous issues. The way architecture extensions are</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment">// exposed in GCC/Clang is, sadly, not really suited for one-file libs.</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment">// New behavior: if compiled with -msse2, we use SSE2 without any</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment">// detection; if not, we don&#39;t use it at all.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#define STBI_NO_SIMD</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#if defined(__MINGW32__) &amp;&amp; defined(STBI__X86_TARGET) &amp;&amp; !defined(STBI_MINGW_ENABLE_SSE2) &amp;&amp; !defined(STBI_NO_SIMD)</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"></span><span class="comment">// Note that __MINGW32__ doesn&#39;t actually mean 32-bit, so we have to avoid STBI__X64_TARGET</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment">// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment">// Windows ABI and VC++ as well as Windows DLLs don&#39;t maintain that invariant.</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment">// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment">// simultaneously enabling &quot;-mstackrealign&quot;.</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="comment">// See https://github.com/nothings/stb/issues/81 for more information.</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="comment">// So default to no SSE2 on 32-bit MinGW. If you&#39;ve read this far and added</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment">// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2.</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor">#define STBI_NO_SIMD</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#if !defined(STBI_NO_SIMD) &amp;&amp; (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SSE2</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;emmintrin.h&gt;</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor">#if _MSC_VER &gt;= 1400 // not VC6</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;intrin.h&gt;</span> <span class="comment">// __cpuid</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__cpuid3(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;{</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordtype">int</span> info[4];</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; __cpuid(info,1);</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">return</span> info[3];</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;}</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__cpuid3(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;{</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; __asm {</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; mov eax,1</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; cpuid</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; mov res,edx</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;}</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__sse2_available(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;{</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordtype">int</span> info3 = stbi__cpuid3();</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">return</span> ((info3 &gt;&gt; 26) &amp; 1) != 0;</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;}</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor">#else // assume GCC-style if not VC++</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__sse2_available(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;{</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="comment">// If we&#39;re even attempting to compile this on GCC/Clang, that means</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// -msse2 is on, which means the compiler is allowed to use SSE2</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="comment">// instructions at will, and so are we.</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;}</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment">// ARM NEON</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor">#if defined(STBI_NO_SIMD) &amp;&amp; defined(STBI_NEON)</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef STBI_NEON</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;arm_neon.h&gt;</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="comment">// assume GCC or Clang on ARM targets</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor">#ifndef STBI_SIMD_ALIGN</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="comment">// stbi__context struct and start_xxx functions</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="comment">// stbi__context structure is our basic context used by all images, so it</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">// contains all the IO context, plus some basic image information</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;{</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; stbi__uint32 img_x, img_y;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordtype">int</span> img_n, img_out_n;</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> io;</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordtype">void</span> *io_user_data;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordtype">int</span> read_from_callbacks;</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordtype">int</span> buflen;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> buffer_start[128];</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *img_buffer, *img_buffer_end;</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *img_buffer_original, *img_buffer_original_end;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;} stbi__context;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__refill_buffer(stbi__context *s);</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="comment">// initialize a memory-decode context</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_mem(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len)</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;{</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; s-&gt;io.read = NULL;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; s-&gt;read_from_callbacks = 0;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_original = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer;</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; s-&gt;img_buffer_end = s-&gt;img_buffer_original_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer+len;</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="comment">// initialize a callback-based context</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_callbacks(stbi__context *s, <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *c, <span class="keywordtype">void</span> *user)</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;{</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; s-&gt;io = *c;</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; s-&gt;io_user_data = user;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; s-&gt;buflen = <span class="keyword">sizeof</span>(s-&gt;buffer_start);</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; s-&gt;read_from_callbacks = 1;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; s-&gt;img_buffer_original = s-&gt;buffer_start;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; stbi__refill_buffer(s);</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; s-&gt;img_buffer_original_end = s-&gt;img_buffer_end;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__stdio_read(<span class="keywordtype">void</span> *user, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> size)</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;{</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) fread(data,1,size,(FILE*) user);</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;}</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_HAS_LROTL</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor">#ifdef STBI_HAS_LROTL</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi_lrot(x, y) _lrotl(x, y)</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi_lrot(x, y) (((x) &lt;&lt; (y)) | ((x) &gt;&gt; (32 - (y))))</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor">#if defined(STBI_MALLOC) &amp;&amp; defined(STBI_FREE) &amp;&amp; \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"></span><span class="comment">// ok</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor">#elif !defined(STBI_MALLOC) &amp;&amp; !defined(STBI_FREE) &amp;&amp; \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> !defined(STBI_REALLOC) &amp;&amp; !defined(STBI_REALLOC_SIZED)</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"></span><span class="comment">// ok</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> &quot;Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED).&quot;</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor">#ifndef STBI_MALLOC</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_MALLOC(sz) malloc(sz)</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_REALLOC(p, newsz) realloc(p, newsz)</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_FREE(p) free(p)</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#ifndef STBI_REALLOC_SIZED</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_REALLOC_SIZED(p, oldsz, newsz) STBI_REALLOC(p, newsz)</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="comment">// x86/x64 detection</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor">#if defined(__x86_64__) || defined(_M_X64)</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__X64_TARGET</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(__i386) || defined(_M_IX86)</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__X86_TARGET</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; defined(STBI__X86_TARGET) &amp;&amp; !defined(__SSE2__) &amp;&amp; \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> !defined(STBI_NO_SIMD)</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"></span><span class="comment">// gcc doesn&#39;t support sse2 intrinsics unless you compile with -msse2,</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment">// which in turn means it gets to use SSE2 everywhere. This is unfortunate,</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment">// but previous attempts to provide the SSE2 functions with runtime</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment">// detection caused numerous issues. The way architecture extensions are</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="comment">// exposed in GCC/Clang is, sadly, not really suited for one-file libs.</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="comment">// New behavior: if compiled with -msse2, we use SSE2 without any</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="comment">// detection; if not, we don&#39;t use it at all.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#define STBI_NO_SIMD</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#if defined(__MINGW32__) &amp;&amp; defined(STBI__X86_TARGET) &amp;&amp; \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> !defined(STBI_MINGW_ENABLE_SSE2) &amp;&amp; !defined(STBI_NO_SIMD)</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"></span><span class="comment">// Note that __MINGW32__ doesn&#39;t actually mean 32-bit, so we have to avoid</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="comment">// STBI__X64_TARGET</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment">// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="comment">// Windows ABI and VC++ as well as Windows DLLs don&#39;t maintain that invariant.</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="comment">// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="comment">// simultaneously enabling &quot;-mstackrealign&quot;.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="comment">// See https://github.com/nothings/stb/issues/81 for more information.</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="comment">// So default to no SSE2 on 32-bit MinGW. If you&#39;ve read this far and added</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment">// -mstackrealign to your build settings, feel free to #define</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment">// STBI_MINGW_ENABLE_SSE2.</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor">#define STBI_NO_SIMD</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor">#if !defined(STBI_NO_SIMD) &amp;&amp; \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SSE2</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;emmintrin.h&gt;</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor">#if _MSC_VER &gt;= 1400 // not VC6</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;intrin.h&gt;</span> <span class="comment">// __cpuid</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__cpuid3(<span class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;{</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordtype">int</span> info[4];</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; __cpuid(info, 1);</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> info[3];</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;}</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__cpuid3(<span class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;{</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordtype">int</span> res;</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; __asm {</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; mov eax,1</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; cpuid</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; mov res,edx</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; }</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">return</span> res;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;}</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__sse2_available(<span class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;{</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordtype">int</span> info3 = stbi__cpuid3();</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> ((info3 &gt;&gt; 26) &amp; 1) != 0;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;}</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor">#else // assume GCC-style if not VC++</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__sse2_available(<span class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;{</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// If we&#39;re even attempting to compile this on GCC/Clang, that means</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="comment">// -msse2 is on, which means the compiler is allowed to use SSE2</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// instructions at will, and so are we.</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;}</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="comment">// ARM NEON</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor">#if defined(STBI_NO_SIMD) &amp;&amp; defined(STBI_NEON)</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef STBI_NEON</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;arm_neon.h&gt;</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="comment">// assume GCC or Clang on ARM targets</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor">#ifndef STBI_SIMD_ALIGN</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI_SIMD_ALIGN(type, name) type name</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="comment">// stbi__context struct and start_xxx functions</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="comment">// stbi__context structure is our basic context used by all images, so it</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="comment">// contains all the IO context, plus some basic image information</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; stbi__uint32 img_x, img_y;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordtype">int</span> img_n, img_out_n;</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__stdio_skip(<span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;{</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; fseek((FILE*) user, n, SEEK_CUR);</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;}</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__stdio_eof(<span class="keywordtype">void</span> *user)</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;{</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">return</span> feof((FILE*) user);</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;}</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="keyword">static</span> <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> stbi__stdio_callbacks =</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;{</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; stbi__stdio_read,</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; stbi__stdio_skip,</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; stbi__stdio_eof,</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;};</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_file(stbi__context *s, FILE *f)</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;{</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; stbi__start_callbacks(s, &amp;stbi__stdio_callbacks, (<span class="keywordtype">void</span> *) f);</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> io;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordtype">void</span> *io_user_data;</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordtype">int</span> read_from_callbacks;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordtype">int</span> buflen;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> buffer_start[128];</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *img_buffer, *img_buffer_end;</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *img_buffer_original, *img_buffer_original_end;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;} stbi__context;</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__refill_buffer(stbi__context *s);</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="comment">// initialize a memory-decode context</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_mem(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len)</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;{</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; s-&gt;io.read = NULL;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; s-&gt;read_from_callbacks = 0;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_original = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; s-&gt;img_buffer_end = s-&gt;img_buffer_original_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer + len;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;}</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="comment">//static void stop_file(stbi__context *s) { }</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__rewind(stbi__context *s)</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;{</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="comment">// conceptually rewind SHOULD rewind to the beginning of the stream,</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="comment">// but we just rewind to the beginning of the initial buffer, because</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">// we only use it after doing &#39;test&#39;, which only ever looks at at most 92 bytes</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_original;</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; s-&gt;img_buffer_end = s-&gt;img_buffer_original_end;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="comment">// initialize a callback-based context</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_callbacks(stbi__context *s, <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *c,</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordtype">void</span> *user)</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;{</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; s-&gt;io = *c;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; s-&gt;io_user_data = user;</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; s-&gt;buflen = <span class="keyword">sizeof</span>(s-&gt;buffer_start);</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; s-&gt;read_from_callbacks = 1;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; s-&gt;img_buffer_original = s-&gt;buffer_start;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; stbi__refill_buffer(s);</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; s-&gt;img_buffer_original_end = s-&gt;img_buffer_end;</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;}</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="keyword">enum</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;{</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; STBI_ORDER_RGB,</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; STBI_ORDER_BGR</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;};</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;{</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordtype">int</span> bits_per_channel;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordtype">int</span> num_channels;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">int</span> channel_order;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;} stbi__result_info;</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_test(stbi__context *s);</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__jpeg_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_test(stbi__context *s);</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__png_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test(stbi__context *s);</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_test(stbi__context *s);</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__tga_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_test(stbi__context *s);</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__psd_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc);</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test(stbi__context *s);</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__hdr_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test(stbi__context *s);</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pic_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test(stbi__context *s);</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__gif_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_test(stbi__context *s);</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pnm_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="comment">// this is not threadsafe</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *stbi__g_failure_reason;</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aa874b3ba909f3281d499894909678336">stbi_failure_reason</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;{</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">return</span> stbi__g_failure_reason;</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;}</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__err(<span class="keyword">const</span> <span class="keywordtype">char</span> *str)</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;{</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; stbi__g_failure_reason = str;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;}</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc(<span class="keywordtype">size_t</span> size)</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;{</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">return</span> STBI_MALLOC(size);</div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;}</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="comment">// stb_image uses ints pervasively, including for offset calculations.</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="comment">// therefore the largest decoded image size we can support with the</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment">// current code, even on 64-bit targets, is INT_MAX. this is not a</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="comment">// significant limitation for the intended use case.</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="comment">// we do, however, need to make sure our size calculations don&#39;t</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="comment">// overflow. hence a few helper functions for size calculations that</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<span class="comment">// multiply integers together, making sure that they&#39;re non-negative</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;<span class="comment">// and no overflow occurs.</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="comment">// return 1 if the sum is valid, 0 on overflow.</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;<span class="comment">// negative terms are considered invalid.</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__addsizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;{</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">if</span> (b &lt; 0) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="comment">// now 0 &lt;= b &lt;= INT_MAX, hence also</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="comment">// 0 &lt;= INT_MAX - b &lt;= INTMAX.</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="comment">// And &quot;a + b &lt;= INT_MAX&quot; (which might overflow) is the</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="comment">// same as a &lt;= INT_MAX - b (no overflow)</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">return</span> a &lt;= INT_MAX - b;</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;}</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment">// returns 1 if the product is valid, 0 on overflow.</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;<span class="comment">// negative factors are considered invalid.</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mul2sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;{</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">if</span> (a &lt; 0 || b &lt; 0) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">if</span> (b == 0) <span class="keywordflow">return</span> 1; <span class="comment">// mul-by-0 is always safe</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="comment">// portable way to check for no overflows in a*b</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">return</span> a &lt;= INT_MAX/b;</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;}</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;<span class="comment">// returns 1 if &quot;a*b + add&quot; has no negative terms/factors and doesn&#39;t overflow</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad2sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;{</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__addsizes_valid(a*b, add);</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;}</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="comment">// returns 1 if &quot;a*b*c + add&quot; has no negative terms/factors and doesn&#39;t overflow</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad3sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;{</div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__mul2sizes_valid(a*b, c) &amp;&amp;</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; stbi__addsizes_valid(a*b*c, add);</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;}</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;<span class="comment">// returns 1 if &quot;a*b*c*d + add&quot; has no negative terms/factors and doesn&#39;t overflow</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad4sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> d, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;{</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__mul2sizes_valid(a*b, c) &amp;&amp;</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; stbi__mul2sizes_valid(a*b*c, d) &amp;&amp; stbi__addsizes_valid(a*b*c*d, add);</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;}</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;<span class="comment">// mallocs with size overflow checking</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad2(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">if</span> (!stbi__mad2sizes_valid(a, b, add)) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a*b + add);</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;}</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad3(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;{</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(a, b, c, add)) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a*b*c + add);</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;}</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad4(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> d, <span class="keywordtype">int</span> add)</div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;{</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span> (!stbi__mad4sizes_valid(a, b, c, d, add)) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a*b*c*d + add);</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;}</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="comment">// stbi__err - error</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="comment">// stbi__errpf - error returning pointer to float</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;<span class="comment">// stbi__errpuc - error returning pointer to unsigned char</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="preprocessor">#ifdef STBI_NO_FAILURE_STRINGS</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi__err(x,y) 0</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(STBI_FAILURE_USERMSG)</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi__err(x,y) stbi__err(y)</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define stbi__err(x,y) stbi__err(x)</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="preprocessor">#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL))</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL))</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb">stbi_image_free</a>(<span class="keywordtype">void</span> *retval_from_stbi_load)</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;{</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; STBI_FREE(retval_from_stbi_load);</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;}</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__ldr_to_hdr(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp);</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__hdr_to_ldr(<span class="keywordtype">float</span> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__vertically_flip_on_load = 0;</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4">stbi_set_flip_vertically_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_flip)</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;{</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; stbi__vertically_flip_on_load = flag_true_if_should_flip;</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;}</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__load_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc)</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;{</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; memset(ri, 0, <span class="keyword">sizeof</span>(*ri)); <span class="comment">// make sure it&#39;s initialized if we add new fields</span></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; ri-&gt;bits_per_channel = 8; <span class="comment">// default is 8 so most paths don&#39;t have to be changed</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; ri-&gt;channel_order = STBI_ORDER_RGB; <span class="comment">// all current input &amp; output are this, but this is here so we can add BGR order</span></div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; ri-&gt;num_channels = 0;</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_JPEG</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__jpeg_test(s)) <span class="keywordflow">return</span> stbi__jpeg_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_PNG</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__png_test(s)) <span class="keywordflow">return</span> stbi__png_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__bmp_test(s)) <span class="keywordflow">return</span> stbi__bmp_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_GIF</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__gif_test(s)) <span class="keywordflow">return</span> stbi__gif_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_PSD</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__psd_test(s)) <span class="keywordflow">return</span> stbi__psd_load(s,x,y,comp,req_comp, ri, bpc);</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_PIC</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pic_test(s)) <span class="keywordflow">return</span> stbi__pic_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifndef STBI_NO_PNM</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pnm_test(s)) <span class="keywordflow">return</span> stbi__pnm_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_test(s)) {</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordtype">float</span> *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">return</span> stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_TGA</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="preprocessor"></span> <span class="comment">// test tga last because it&#39;s a crappy test!</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span> (stbi__tga_test(s))</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">return</span> stbi__tga_load(s,x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown image type&quot;</span>, <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;}</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__convert_16_to_8(stbi__uint16 *orig, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h, <span class="keywordtype">int</span> channels)</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;{</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordtype">int</span> img_len = w * h * channels;</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *reduced;</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; reduced = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc(img_len);</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordflow">if</span> (reduced == NULL) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; img_len; ++i)</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; reduced[i] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((orig[i] &gt;&gt; 8) &amp; 0xFF); <span class="comment">// top half of each byte is sufficient approx of 16-&gt;8 bit scaling</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; STBI_FREE(orig);</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">return</span> reduced;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;}</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__convert_8_to_16(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *orig, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h, <span class="keywordtype">int</span> channels)</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;{</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordtype">int</span> img_len = w * h * channels;</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; stbi__uint16 *enlarged;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__stdio_read(<span class="keywordtype">void</span> *user, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> size)</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;{</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)fread(data, 1, size, (FILE *)user);</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;}</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__stdio_skip(<span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;{</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; fseek((FILE *)user, n, SEEK_CUR);</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;}</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__stdio_eof(<span class="keywordtype">void</span> *user)</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;{</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> feof((FILE *)user);</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;}</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="keyword">static</span> <a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> stbi__stdio_callbacks = {</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; stbi__stdio_read,</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; stbi__stdio_skip,</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; stbi__stdio_eof,</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;};</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__start_file(stbi__context *s, FILE *f)</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;{</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; stbi__start_callbacks(s, &amp;stbi__stdio_callbacks, (<span class="keywordtype">void</span> *)f);</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;}</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="comment">// static void stop_file(stbi__context *s) { }</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__rewind(stbi__context *s)</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;{</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="comment">// conceptually rewind SHOULD rewind to the beginning of the stream,</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="comment">// but we just rewind to the beginning of the initial buffer, because</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="comment">// we only use it after doing &#39;test&#39;, which only ever looks at at most 92</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">// bytes</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_original;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; s-&gt;img_buffer_end = s-&gt;img_buffer_original_end;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;}</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="keyword">enum</span> { STBI_ORDER_RGB, STBI_ORDER_BGR };</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordtype">int</span> bits_per_channel;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordtype">int</span> num_channels;</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordtype">int</span> channel_order;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;} stbi__result_info;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_test(stbi__context *s);</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__jpeg_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_test(stbi__context *s);</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__png_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test(stbi__context *s);</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_test(stbi__context *s);</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__tga_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_test(stbi__context *s);</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__psd_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc);</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test(stbi__context *s);</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__hdr_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test(stbi__context *s);</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pic_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test(stbi__context *s);</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__gif_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_test(stbi__context *s);</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pnm_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri);</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="comment">// this is not threadsafe</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *stbi__g_failure_reason;</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aa874b3ba909f3281d499894909678336">stbi_failure_reason</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;{</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">return</span> stbi__g_failure_reason;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;}</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__err(<span class="keyword">const</span> <span class="keywordtype">char</span> *str)</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;{</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; stbi__g_failure_reason = str;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;}</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc(<span class="keywordtype">size_t</span> size)</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;{</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> STBI_MALLOC(size);</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;}</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="comment">// stb_image uses ints pervasively, including for offset calculations.</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="comment">// therefore the largest decoded image size we can support with the</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="comment">// current code, even on 64-bit targets, is INT_MAX. this is not a</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;<span class="comment">// significant limitation for the intended use case.</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;<span class="comment">// we do, however, need to make sure our size calculations don&#39;t</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;<span class="comment">// overflow. hence a few helper functions for size calculations that</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;<span class="comment">// multiply integers together, making sure that they&#39;re non-negative</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;<span class="comment">// and no overflow occurs.</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;<span class="comment">// return 1 if the sum is valid, 0 on overflow.</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;<span class="comment">// negative terms are considered invalid.</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__addsizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;{</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">if</span> (b &lt; 0)</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="comment">// now 0 &lt;= b &lt;= INT_MAX, hence also</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="comment">// 0 &lt;= INT_MAX - b &lt;= INTMAX.</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="comment">// And &quot;a + b &lt;= INT_MAX&quot; (which might overflow) is the</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="comment">// same as a &lt;= INT_MAX - b (no overflow)</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keywordflow">return</span> a &lt;= INT_MAX - b;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;}</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="comment">// returns 1 if the product is valid, 0 on overflow.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;<span class="comment">// negative factors are considered invalid.</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mul2sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b)</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;{</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">if</span> (a &lt; 0 || b &lt; 0)</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">if</span> (b == 0)</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">return</span> 1; <span class="comment">// mul-by-0 is always safe</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="comment">// portable way to check for no overflows in a*b</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">return</span> a &lt;= INT_MAX / b;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;}</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="comment">// returns 1 if &quot;a*b + add&quot; has no negative terms/factors and doesn&#39;t overflow</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad2sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;{</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__addsizes_valid(a * b, add);</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;}</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;<span class="comment">// returns 1 if &quot;a*b*c + add&quot; has no negative terms/factors and doesn&#39;t overflow</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad3sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;{</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__mul2sizes_valid(a * b, c) &amp;&amp;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; stbi__addsizes_valid(a * b * c, add);</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;}</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="comment">// returns 1 if &quot;a*b*c*d + add&quot; has no negative terms/factors and doesn&#39;t</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="comment">// overflow</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__mad4sizes_valid(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> d, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;{</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">return</span> stbi__mul2sizes_valid(a, b) &amp;&amp; stbi__mul2sizes_valid(a * b, c) &amp;&amp;</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; stbi__mul2sizes_valid(a * b * c, d) &amp;&amp;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; stbi__addsizes_valid(a * b * c * d, add);</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;}</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;<span class="comment">// mallocs with size overflow checking</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad2(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;{</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span> (!stbi__mad2sizes_valid(a, b, add))</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a * b + add);</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad3(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;{</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(a, b, c, add))</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a * b * c + add);</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;}</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__malloc_mad4(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c, <span class="keywordtype">int</span> d, <span class="keywordtype">int</span> add)</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;{</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">if</span> (!stbi__mad4sizes_valid(a, b, c, d, add))</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">return</span> stbi__malloc(a * b * c * d + add);</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;}</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="comment">// stbi__err - error</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="comment">// stbi__errpf - error returning pointer to float</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="comment">// stbi__errpuc - error returning pointer to unsigned char</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="preprocessor">#ifdef STBI_NO_FAILURE_STRINGS</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__err(x, y) 0</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(STBI_FAILURE_USERMSG)</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__err(x, y) stbi__err(y)</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__err(x, y) stbi__err(x)</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="preprocessor">#define stbi__errpf(x, y) ((float *)(size_t)(stbi__err(x, y) ? NULL : NULL))</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__errpuc(x, y) \</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor"> ((unsigned char *)(size_t)(stbi__err(x, y) ? NULL : NULL))</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ad3e11bb44412a7ba348acfbad09caacb">stbi_image_free</a>(<span class="keywordtype">void</span> *retval_from_stbi_load)</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;{</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; STBI_FREE(retval_from_stbi_load);</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;}</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__ldr_to_hdr(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp);</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__hdr_to_ldr(<span class="keywordtype">float</span> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__vertically_flip_on_load = 0;</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab89c177fc52f1bb2dc1c05e48129a0a4">stbi_set_flip_vertically_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_flip)</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;{</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; stbi__vertically_flip_on_load = flag_true_if_should_flip;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;}</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__load_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc)</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;{</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; memset(ri, 0,</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keyword">sizeof</span>(*ri)); <span class="comment">// make sure it&#39;s initialized if we add new fields</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; ri-&gt;bits_per_channel =</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; 8; <span class="comment">// default is 8 so most paths don&#39;t have to be changed</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; ri-&gt;channel_order = STBI_ORDER_RGB; <span class="comment">// all current input &amp; output are this,</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="comment">// but this is here so we can add BGR</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="comment">// order</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; ri-&gt;num_channels = 0;</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; enlarged = (stbi__uint16 *) stbi__malloc(img_len*2);</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">if</span> (enlarged == NULL) <span class="keywordflow">return</span> (stbi__uint16 *) stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; img_len; ++i)</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; enlarged[i] = (stbi__uint16)((orig[i] &lt;&lt; 8) + orig[i]); <span class="comment">// replicate to high and low byte, maps 0-&gt;0, 255-&gt;0xffff</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; STBI_FREE(orig);</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">return</span> enlarged;</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;}</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__vertical_flip(<span class="keywordtype">void</span> *image, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h, <span class="keywordtype">int</span> bytes_per_pixel)</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;{</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordtype">int</span> row;</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordtype">size_t</span> bytes_per_row = (size_t)w * bytes_per_pixel;</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> temp[2048];</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *bytes = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)image;</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordflow">for</span> (row = 0; row &lt; (h&gt;&gt;1); row++) {</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *row0 = bytes + row*bytes_per_row;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *row1 = bytes + (h - row - 1)*bytes_per_row;</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="comment">// swap row0 with row1</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordtype">size_t</span> bytes_left = bytes_per_row;</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">while</span> (bytes_left) {</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordtype">size_t</span> bytes_copy = (bytes_left &lt; <span class="keyword">sizeof</span>(temp)) ? bytes_left : <span class="keyword">sizeof</span>(temp);</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; memcpy(temp, row0, bytes_copy);</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; memcpy(row0, row1, bytes_copy);</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; memcpy(row1, temp, bytes_copy);</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; row0 += bytes_copy;</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; row1 += bytes_copy;</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; bytes_left -= bytes_copy;</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; }</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; }</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;}</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *stbi__load_and_postprocess_8bit(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;{</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; stbi__result_info ri;</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordtype">void</span> *result = stbi__load_main(s, x, y, comp, req_comp, &amp;ri, 8);</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">if</span> (result == NULL)</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">if</span> (ri.bits_per_channel != 8) {</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; STBI_ASSERT(ri.bits_per_channel == 16);</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp);</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; ri.bits_per_channel = 8;</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="comment">// @TODO: move stbi__convert_format to here</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load) {</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>));</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; }</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *) result;</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;}</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;{</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; stbi__result_info ri;</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordtype">void</span> *result = stbi__load_main(s, x, y, comp, req_comp, &amp;ri, 16);</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">if</span> (result == NULL)</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__jpeg_test(s))</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">return</span> stbi__jpeg_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__png_test(s))</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">return</span> stbi__png_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__bmp_test(s))</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> stbi__bmp_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__gif_test(s))</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">return</span> stbi__gif_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__psd_test(s))</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">return</span> stbi__psd_load(s, x, y, comp, req_comp, ri, bpc);</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pic_test(s))</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">return</span> stbi__pic_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pnm_test(s))</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordflow">return</span> stbi__pnm_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_test(s)) {</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordtype">float</span> *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">return</span> stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; }</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor"></span> <span class="comment">// test tga last because it&#39;s a crappy test!</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">if</span> (stbi__tga_test(s))</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">return</span> stbi__tga_load(s, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown image type&quot;</span>,</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;}</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__convert_16_to_8(stbi__uint16 *orig, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keywordtype">int</span> channels)</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;{</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordtype">int</span> img_len = w * h * channels;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *reduced;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; reduced = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc(img_len);</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">if</span> (reduced == NULL)</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; img_len; ++i)</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; reduced[i] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((orig[i] &gt;&gt; 8) &amp; 0xFF); <span class="comment">// top half of each byte</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="comment">// is sufficient approx</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="comment">// of 16-&gt;8 bit scaling</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; STBI_FREE(orig);</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">return</span> reduced;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;}</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">if</span> (ri.bits_per_channel != 16) {</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; STBI_ASSERT(ri.bits_per_channel == 8);</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; result = stbi__convert_8_to_16((<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) result, *x, *y, req_comp == 0 ? *comp : req_comp);</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; ri.bits_per_channel = 16;</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; }</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="comment">// @TODO: move stbi__convert_format16 to here</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="comment">// @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load) {</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(stbi__uint16));</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; }</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">return</span> (stbi__uint16 *) result;</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;}</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__float_postprocess(<span class="keywordtype">float</span> *result, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;{</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load &amp;&amp; result != NULL) {</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>));</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; }</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;}</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="keyword">static</span> FILE *stbi__fopen(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">char</span> <span class="keyword">const</span> *mode)</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;{</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; FILE *f;</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400</span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (0 != fopen_s(&amp;f, filename, mode))</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; f=0;</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="preprocessor"></span> f = fopen(filename, mode);</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> f;</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;}</div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048">stbi_load</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;{</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result;</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">if</span> (!f) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; result = <a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a>(f,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; fclose(f);</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;}</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__convert_8_to_16(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *orig, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordtype">int</span> channels)</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;{</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordtype">int</span> img_len = w * h * channels;</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; stbi__uint16 *enlarged;</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2);</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">if</span> (enlarged == NULL)</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">return</span> (stbi__uint16 *)stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; img_len; ++i)</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; enlarged[i] = (stbi__uint16)(</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; (orig[i] &lt;&lt; 8) +</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; orig[i]); <span class="comment">// replicate to high and low byte, maps 0-&gt;0, 255-&gt;0xffff</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; STBI_FREE(orig);</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">return</span> enlarged;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;}</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__vertical_flip(<span class="keywordtype">void</span> *image, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h, <span class="keywordtype">int</span> bytes_per_pixel)</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;{</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordtype">int</span> row;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordtype">size_t</span> bytes_per_row = (size_t)w * bytes_per_pixel;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> temp[2048];</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *bytes = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)image;</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">for</span> (row = 0; row &lt; (h &gt;&gt; 1); row++) {</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *row0 = bytes + row * bytes_per_row;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *row1 = bytes + (h - row - 1) * bytes_per_row;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="comment">// swap row0 with row1</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordtype">size_t</span> bytes_left = bytes_per_row;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">while</span> (bytes_left) {</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordtype">size_t</span> bytes_copy =</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; (bytes_left &lt; <span class="keyword">sizeof</span>(temp)) ? bytes_left : <span class="keyword">sizeof</span>(temp);</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; memcpy(temp, row0, bytes_copy);</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; memcpy(row0, row1, bytes_copy);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; memcpy(row1, temp, bytes_copy);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; row0 += bytes_copy;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; row1 += bytes_copy;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; bytes_left -= bytes_copy;</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; }</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; }</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;}</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *stbi__load_and_postprocess_8bit(stbi__context *s, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;{</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; stbi__result_info ri;</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordtype">void</span> *result = stbi__load_main(s, x, y, comp, req_comp, &amp;ri, 8);</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;{</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result;</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; stbi__start_file(&amp;s,f);</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; result = stbi__load_and_postprocess_8bit(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">if</span> (result) {</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="comment">// need to &#39;unget&#39; all the characters in the IO buffer</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; fseek(f, - (<span class="keywordtype">int</span>) (s.img_buffer_end - s.img_buffer), SEEK_CUR);</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; }</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;}</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> stbi__uint16 *<a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;{</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; stbi__uint16 *result;</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; stbi__start_file(&amp;s,f);</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; result = stbi__load_and_postprocess_16bit(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">if</span> (result) {</div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="comment">// need to &#39;unget&#39; all the characters in the IO buffer</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; fseek(f, - (<span class="keywordtype">int</span>) (s.img_buffer_end - s.img_buffer), SEEK_CUR);</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; }</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;}</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee">stbi_load_16</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;{</div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; stbi__uint16 *result;</div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span> (!f) <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *) stbi__errpuc(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; result = <a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(f,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; fclose(f);</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;}</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">if</span> (result == NULL)</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">if</span> (ri.bits_per_channel != 8) {</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; STBI_ASSERT(ri.bits_per_channel == 16);</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y,</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; req_comp == 0 ? *comp : req_comp);</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; ri.bits_per_channel = 8;</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="comment">// @TODO: move stbi__convert_format to here</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load) {</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>));</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; }</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)result;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;}</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;{</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; stbi__result_info ri;</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordtype">void</span> *result = stbi__load_main(s, x, y, comp, req_comp, &amp;ri, 16);</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">if</span> (result == NULL)</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span> (ri.bits_per_channel != 16) {</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; STBI_ASSERT(ri.bits_per_channel == 8);</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; result = stbi__convert_8_to_16((<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)result, *x, *y,</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; req_comp == 0 ? *comp : req_comp);</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; ri.bits_per_channel = 16;</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; }</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="preprocessor">#endif </span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a">stbi_load_16_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels)</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;{</div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; stbi__start_mem(&amp;s,buffer,len);</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_16bit(&amp;s,x,y,channels_in_file,desired_channels);</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;}</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="comment">// @TODO: move stbi__convert_format16 to here</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="comment">// @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="comment">// keep more precision</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load) {</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(stbi__uint16));</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; }</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18">stbi_load_16_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file, <span class="keywordtype">int</span> desired_channels)</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;{</div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)clbk, user);</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_16bit(&amp;s,x,y,channels_in_file,desired_channels);</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;}</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f">stbi_load_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;{</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; stbi__start_mem(&amp;s,buffer,len);</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_8bit(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;}</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7">stbi_load_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;{</div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *) clbk, user);</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_8bit(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;}</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__loadf_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;{</div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data;</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_test(s)) {</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; stbi__result_info ri;</div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordtype">float</span> *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &amp;ri);</div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keywordflow">if</span> (hdr_data)</div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; stbi__float_postprocess(hdr_data,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordflow">return</span> hdr_data;</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; }</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;<span class="preprocessor"></span> data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">if</span> (data)</div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">return</span> stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);</div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unknown image type&quot;</span>, <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">return</span> (stbi__uint16 *)result;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;}</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__float_postprocess(<span class="keywordtype">float</span> *result, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;{</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">if</span> (stbi__vertically_flip_on_load &amp;&amp; result != NULL) {</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordtype">int</span> channels = req_comp ? req_comp : *comp;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; stbi__vertical_flip(result, *x, *y, channels * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>));</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; }</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;}</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="keyword">static</span> FILE *stbi__fopen(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">char</span> <span class="keyword">const</span> *mode)</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;{</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; FILE *f;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (0 != fopen_s(&amp;f, filename, mode))</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; f = 0;</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="preprocessor"></span> f = fopen(filename, mode);</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> f;</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;}</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aefdc7387857a14894bbf321e9ea4f048">stbi_load</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;{</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">if</span> (!f)</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; result = <a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a>(f, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; fclose(f);</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;}</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2">stbi_loadf_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;{</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; stbi__start_mem(&amp;s,buffer,len);</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;}</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb">stbi_loadf_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;{</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *) clbk, user);</div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s,x,y,comp,req_comp);</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#aa9994764695597161e8f3776e97caa99">stbi_load_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;{</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result;</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; stbi__start_file(&amp;s, f);</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; result = stbi__load_and_postprocess_8bit(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordflow">if</span> (result) {</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="comment">// need to &#39;unget&#39; all the characters in the IO buffer</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; fseek(f, -(<span class="keywordtype">int</span>)(s.img_buffer_end - s.img_buffer), SEEK_CUR);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; }</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;}</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#af4f17acd30945a75901fdc022f90575f">stbi_loadf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> stbi__uint16 *<a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;{</div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keywordtype">float</span> *result;</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">if</span> (!f) <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; result = <a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a>(f,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; fclose(f);</div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;}</div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;</div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;{</div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; stbi__start_file(&amp;s,f);</div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s,x,y,comp,req_comp);</div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;}</div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="preprocessor">#endif // !STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment">// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment">// reports false!</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e">stbi_is_hdr_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len)</div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;{</div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; stbi__start_mem(&amp;s,buffer,len);</div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(buffer);</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; STBI_NOTUSED(len);</div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; stbi__uint16 *result;</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; stbi__start_file(&amp;s, f);</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; result = stbi__load_and_postprocess_16bit(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keywordflow">if</span> (result) {</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="comment">// need to &#39;unget&#39; all the characters in the IO buffer</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; fseek(f, -(<span class="keywordtype">int</span>)(s.img_buffer_end - s.img_buffer), SEEK_CUR);</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; }</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;}</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a8a58b6bcd805afa1bdb14f988dd37fee">stbi_load_16</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;{</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; stbi__uint16 *result;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <span class="keywordflow">if</span> (!f)</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *)stbi__errpuc(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; result = <a class="code" href="stb__image_8h.html#a9ca2591f0987284129e82bf9dbcf7c6c">stbi_load_from_file_16</a>(f, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; fclose(f);</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;}</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="preprocessor">#endif </span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#ad30fd870ed2138ce8f38c9dd29b2f76a">stbi_load_16_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordtype">int</span> desired_channels)</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;{</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; stbi__start_mem(&amp;s, buffer, len);</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_16bit(&amp;s, x, y, channels_in_file,</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; desired_channels);</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;}</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c">stbi_is_hdr</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *filename)</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;{</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordtype">int</span> result=0;</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keywordflow">if</span> (f) {</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; result = <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(f);</div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; fclose(f);</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; }</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;}</div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(FILE *f)</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a648037d4c55689328ba08c8f5d293df2">stbi_us</a> *<a class="code" href="stb__image_8h.html#a82bcc0957b6a4ebfdfa3d7f04fbaed18">stbi_load_16_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y,</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keywordtype">int</span> *channels_in_file,</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordtype">int</span> desired_channels)</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;{</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)clbk, user);</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_16bit(&amp;s, x, y, channels_in_file,</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; desired_channels);</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;}</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#acae25d31bfae29d75482f07fecf2935f">stbi_load_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;{</div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; stbi__start_file(&amp;s,f);</div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(f);</div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077">stbi_is_hdr_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk, <span class="keywordtype">void</span> *user)</div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;{</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *) clbk, user);</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(clbk);</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; STBI_NOTUSED(user);</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f;</div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;</div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb">stbi_ldr_to_hdr_gamma</a>(<span class="keywordtype">float</span> gamma) { stbi__l2h_gamma = gamma; }</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#af946583656a362a316b40c0421c20561">stbi_ldr_to_hdr_scale</a>(<span class="keywordtype">float</span> scale) { stbi__l2h_scale = scale; }</div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f;</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e">stbi_hdr_to_ldr_gamma</a>(<span class="keywordtype">float</span> gamma) { stbi__h2l_gamma_i = 1/gamma; }</div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258">stbi_hdr_to_ldr_scale</a>(<span class="keywordtype">float</span> scale) { stbi__h2l_scale_i = 1/scale; }</div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment">// Common code used by all image loaders</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;</div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="keyword">enum</span></div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;{</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; STBI__SCAN_load=0,</div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; STBI__SCAN_type,</div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; STBI__SCAN_header</div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;};</div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__refill_buffer(stbi__context *s)</div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;{</div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keywordtype">int</span> n = (s-&gt;io.read)(s-&gt;io_user_data,(<span class="keywordtype">char</span>*)s-&gt;buffer_start,s-&gt;buflen);</div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keywordflow">if</span> (n == 0) {</div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; <span class="comment">// at end of file, treat same as if from memory, but need to handle case</span></div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; <span class="comment">// where s-&gt;img_buffer isn&#39;t pointing to safe memory, e.g. 0-byte file</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; s-&gt;read_from_callbacks = 0;</div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; s-&gt;img_buffer = s-&gt;buffer_start;</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; s-&gt;img_buffer_end = s-&gt;buffer_start+1;</div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; *s-&gt;img_buffer = 0;</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; s-&gt;img_buffer = s-&gt;buffer_start;</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; s-&gt;img_buffer_end = s-&gt;buffer_start + n;</div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; }</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; stbi__start_mem(&amp;s, buffer, len);</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_8bit(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;}</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<a class="code" href="stb__image_8h.html#a95ebc5c42c1a753200be8d465e933af7">stbi_load_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;{</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)clbk, user);</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <span class="keywordflow">return</span> stbi__load_and_postprocess_8bit(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;}</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__loadf_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;{</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_test(s)) {</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; stbi__result_info ri;</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keywordtype">float</span> *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &amp;ri);</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordflow">if</span> (hdr_data)</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; stbi__float_postprocess(hdr_data, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> hdr_data;</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; }</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="preprocessor"></span> data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keywordflow">if</span> (data)</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <span class="keywordflow">return</span> stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unknown image type&quot;</span>,</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;}</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a5d47fb76ce1e34eb0729ad932c9c48e2">stbi_loadf_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;{</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; stbi__start_mem(&amp;s, buffer, len);</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;}</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#a6e7fd261af79ecef2208df3a6cc806bb">stbi_loadf_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;{</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)clbk, user);</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;}</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#af4f17acd30945a75901fdc022f90575f">stbi_loadf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;{</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordtype">float</span> *result;</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keywordflow">if</span> (!f)</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; result = <a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a>(f, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; fclose(f);</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;}</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__get8(stbi__context *s)</div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;{</div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_buffer &lt; s-&gt;img_buffer_end)</div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <span class="keywordflow">return</span> *s-&gt;img_buffer++;</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">if</span> (s-&gt;read_from_callbacks) {</div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; stbi__refill_buffer(s);</div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <span class="keywordflow">return</span> *s-&gt;img_buffer++;</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; }</div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;}</div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__at_eof(stbi__context *s)</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;{</div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keywordflow">if</span> (!(s-&gt;io.eof)(s-&gt;io_user_data)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="comment">// if feof() is true, check if buffer = end</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="comment">// special case: we&#39;ve only got the special 0 character at the end</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">if</span> (s-&gt;read_from_callbacks == 0) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; }</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">return</span> s-&gt;img_buffer &gt;= s-&gt;img_buffer_end;</div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;}</div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;</div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__skip(stbi__context *s, <span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;{</div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">if</span> (n &lt; 0) {</div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; }</div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <span class="keywordtype">int</span> blen = (int) (s-&gt;img_buffer_end - s-&gt;img_buffer);</div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keywordflow">if</span> (blen &lt; n) {</div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; (s-&gt;io.skip)(s-&gt;io_user_data, n - blen);</div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; }</div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; }</div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; s-&gt;img_buffer += n;</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">float</span> *<a class="code" href="stb__image_8h.html#ace82446ecd7b5c760cde062179660f46">stbi_loadf_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;{</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; stbi__start_file(&amp;s, f);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">return</span> stbi__loadf_main(&amp;s, x, y, comp, req_comp);</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;}</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;<span class="preprocessor">#endif // !STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;<span class="comment">// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is</span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;<span class="comment">// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;<span class="comment">// reports false!</span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a5cbc6f5cbb3b2d0d87ee959fcee9d23e">stbi_is_hdr_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len)</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;{</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; stbi__start_mem(&amp;s, buffer, len);</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(buffer);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; STBI_NOTUSED(len);</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae70f9a302f7e87fd971075e7f758d55c">stbi_is_hdr</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename)</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;{</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keywordtype">int</span> result = 0;</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keywordflow">if</span> (f) {</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; result = <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(f);</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; fclose(f);</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; }</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;}</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__getn(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *buffer, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aaf10d41631e1e9214fde1688bdbd8524">stbi_is_hdr_from_file</a>(FILE *f)</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;{</div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordtype">int</span> blen = (int) (s-&gt;img_buffer_end - s-&gt;img_buffer);</div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; <span class="keywordflow">if</span> (blen &lt; n) {</div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordtype">int</span> res, count;</div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; memcpy(buffer, s-&gt;img_buffer, blen);</div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; count = (s-&gt;io.read)(s-&gt;io_user_data, (<span class="keywordtype">char</span>*) buffer + blen, n - blen);</div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; res = (count == (n-blen));</div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; }</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; }</div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_buffer+n &lt;= s-&gt;img_buffer_end) {</div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; memcpy(buffer, s-&gt;img_buffer, n);</div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; s-&gt;img_buffer += n;</div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;}</div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__get16be(stbi__context *s)</div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;{</div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <span class="keywordtype">int</span> z = stbi__get8(s);</div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordflow">return</span> (z &lt;&lt; 8) + stbi__get8(s);</div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;}</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; stbi__start_file(&amp;s, f);</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(f);</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#af0e94f316fe1848f632517ca3c11d077">stbi_is_hdr_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *clbk,</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <span class="keywordtype">void</span> *user)</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;{</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="preprocessor"></span> stbi__context s;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)clbk, user);</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">return</span> stbi__hdr_test(&amp;s);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;<span class="preprocessor"></span> STBI_NOTUSED(clbk);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; STBI_NOTUSED(user);</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> stbi__l2h_gamma = 2.2f, stbi__l2h_scale = 1.0f;</div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="keyword">static</span> stbi__uint32 stbi__get32be(stbi__context *s)</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a1feccdcf726dcc6b5502e3efa85b7dbb">stbi_ldr_to_hdr_gamma</a>(<span class="keywordtype">float</span> gamma)</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;{</div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; stbi__uint32 z = stbi__get16be(s);</div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keywordflow">return</span> (z &lt;&lt; 16) + stbi__get16be(s);</div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;}</div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;</div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="preprocessor">#if defined(STBI_NO_BMP) &amp;&amp; defined(STBI_NO_TGA) &amp;&amp; defined(STBI_NO_GIF)</span></div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;<span class="preprocessor"></span><span class="comment">// nothing</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__get16le(stbi__context *s)</div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;{</div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keywordtype">int</span> z = stbi__get8(s);</div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keywordflow">return</span> z + (stbi__get8(s) &lt;&lt; 8);</div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;}</div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> stbi__uint32 stbi__get32le(stbi__context *s)</div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;{</div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; stbi__uint32 z = stbi__get16le(s);</div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keywordflow">return</span> z + (stbi__get16le(s) &lt;&lt; 16);</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;}</div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;<span class="preprocessor">#define STBI__BYTECAST(x) ((stbi_uc) ((x) &amp; 255)) // truncate int to byte without warnings</span></div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;</div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment">// generic converter from built-in img_n to req_comp</span></div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment">// individual types do this automatically as much as possible (e.g. jpeg</span></div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="comment">// does all cases internally since it needs to colorspace convert anyway,</span></div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<span class="comment">// and it never has alpha, so very few cases ). png can automatically</span></div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="comment">// interleave an alpha=255 channel, but falls back to this for other cases</span></div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="comment">// assume data buffer is malloced, so malloc a new one and free that one</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;<span class="comment">// only failure mode is malloc failing</span></div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__compute_y(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b)</div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;{</div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) (((r*77) + (g*150) + (29*b)) &gt;&gt; 8);</div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;}</div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;</div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *stbi__convert_format(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> img_n, <span class="keywordtype">int</span> req_comp, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y)</div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;{</div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *good;</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keywordflow">if</span> (req_comp == img_n) <span class="keywordflow">return</span> data;</div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; STBI_ASSERT(req_comp &gt;= 1 &amp;&amp; req_comp &lt;= 4);</div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; good = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *) stbi__malloc_mad3(req_comp, x, y, 0);</div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordflow">if</span> (good == NULL) {</div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; }</div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;</div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; (int) y; ++j) {</div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src = data + j * x * img_n ;</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *dest = good + j * x * req_comp;</div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;</div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="preprocessor"> #define STBI__COMBO(a,b) ((a)*8+(b))</span></div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i &gt;= 0; --i, src += a, dest += b)</span></div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="preprocessor"></span> <span class="comment">// convert source image with img_n components to one with req_comp components;</span></div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <span class="comment">// avoid switch per pixel, so use switch per scanline and massive macros</span></div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keywordflow">switch</span> (STBI__COMBO(img_n, req_comp)) {</div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; STBI__CASE(1,2) { dest[0]=src[0], dest[1]=255; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; STBI__CASE(2,1) { dest[0]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <span class="keywordflow">default</span>: STBI_ASSERT(0);</div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; }</div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="preprocessor"> #undef STBI__CASE</span></div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="preprocessor"></span> }</div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;</div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <span class="keywordflow">return</span> good;</div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;}</div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;<span class="keyword">static</span> stbi__uint16 stbi__compute_y_16(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b)</div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;{</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keywordflow">return</span> (stbi__uint16) (((r*77) + (g*150) + (29*b)) &gt;&gt; 8);</div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;}</div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, <span class="keywordtype">int</span> img_n, <span class="keywordtype">int</span> req_comp, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y)</div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;{</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; stbi__uint16 *good;</div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keywordflow">if</span> (req_comp == img_n) <span class="keywordflow">return</span> data;</div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; STBI_ASSERT(req_comp &gt;= 1 &amp;&amp; req_comp &lt;= 4);</div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2);</div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; <span class="keywordflow">if</span> (good == NULL) {</div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keywordflow">return</span> (stbi__uint16 *) stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; }</div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;</div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; (int) y; ++j) {</div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; stbi__uint16 *src = data + j * x * img_n ;</div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; stbi__uint16 *dest = good + j * x * req_comp;</div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;</div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="preprocessor"> #define STBI__COMBO(a,b) ((a)*8+(b))</span></div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i &gt;= 0; --i, src += a, dest += b)</span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;<span class="preprocessor"></span> <span class="comment">// convert source image with img_n components to one with req_comp components;</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="comment">// avoid switch per pixel, so use switch per scanline and massive macros</span></div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="keywordflow">switch</span> (STBI__COMBO(img_n, req_comp)) {</div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; STBI__CASE(1,2) { dest[0]=src[0], dest[1]=0xffff; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=0xffff; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; STBI__CASE(2,1) { dest[0]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=0xffff; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = 0xffff; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = src[3]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keywordflow">default</span>: STBI_ASSERT(0);</div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; }</div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="preprocessor"> #undef STBI__CASE</span></div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;<span class="preprocessor"></span> }</div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;</div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="keywordflow">return</span> good;</div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;}</div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__ldr_to_hdr(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp)</div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;{</div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <span class="keywordtype">int</span> i,k,n;</div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keywordtype">float</span> *output;</div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="keywordflow">if</span> (!data) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; output = (<span class="keywordtype">float</span> *) stbi__malloc_mad4(x, y, comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0);</div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <span class="keywordflow">if</span> (output == NULL) { STBI_FREE(data); <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>); }</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="comment">// compute number of non-alpha components</span></div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; <span class="keywordflow">if</span> (comp &amp; 1) n = comp; <span class="keywordflow">else</span> n = comp-1;</div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; x*y; ++i) {</div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; n; ++k) {</div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale);</div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; }</div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span> (k &lt; comp) output[i*comp + k] = data[i*comp+k]/255.0f;</div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; }</div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keywordflow">return</span> output;</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;}</div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__float2int(x) ((int) (x))</span></div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__hdr_to_ldr(<span class="keywordtype">float</span> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp)</div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;{</div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keywordtype">int</span> i,k,n;</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *output;</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; <span class="keywordflow">if</span> (!data) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; output = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(x, y, comp, 0);</div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keywordflow">if</span> (output == NULL) { STBI_FREE(data); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>); }</div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="comment">// compute number of non-alpha components</span></div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; <span class="keywordflow">if</span> (comp &amp; 1) n = comp; <span class="keywordflow">else</span> n = comp-1;</div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; x*y; ++i) {</div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; n; ++k) {</div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; <span class="keywordtype">float</span> z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f;</div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keywordflow">if</span> (z &lt; 0) z = 0;</div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="keywordflow">if</span> (z &gt; 255) z = 255;</div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; output[i*comp + k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) stbi__float2int(z);</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; }</div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; <span class="keywordflow">if</span> (k &lt; comp) {</div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; <span class="keywordtype">float</span> z = data[i*comp+k] * 255 + 0.5f;</div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keywordflow">if</span> (z &lt; 0) z = 0;</div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keywordflow">if</span> (z &gt; 255) z = 255;</div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; output[i*comp + k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) stbi__float2int(z);</div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; }</div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; }</div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; STBI_FREE(data);</div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <span class="keywordflow">return</span> output;</div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;}</div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="comment">// &quot;baseline&quot; JPEG/JFIF decoder</span></div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment">// simple implementation</span></div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="comment">// - doesn&#39;t support delayed output of y-dimension</span></div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;<span class="comment">// - simple interface (only one output format: 8-bit interleaved RGB)</span></div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;<span class="comment">// - doesn&#39;t try to recover corrupt jpegs</span></div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;<span class="comment">// - doesn&#39;t allow partial loading, loading multiple at once</span></div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;<span class="comment">// - still fast on x86 (copying globals into locals doesn&#39;t help x86)</span></div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;<span class="comment">// - allocates lots of intermediate memory (full size of all components)</span></div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;<span class="comment">// - non-interleaved case requires this anyway</span></div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;<span class="comment">// - allows good upsampling (see next)</span></div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;<span class="comment">// high-quality</span></div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="comment">// - upsampled channels are bilinearly interpolated, even across blocks</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;<span class="comment">// - quality integer IDCT derived from IJG&#39;s &#39;slow&#39;</span></div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;<span class="comment">// performance</span></div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;<span class="comment">// - fast huffman; reasonable integer IDCT</span></div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="comment">// - some SIMD kernels for common paths on targets with SSE2/NEON</span></div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;<span class="comment">// - uses a lot of intermediate memory, could cache poorly</span></div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="comment">// huffman decoding acceleration</span></div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="preprocessor">#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache</span></div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;{</div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fast[1 &lt;&lt; FAST_BITS];</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; <span class="comment">// weirdly, repacking this into AoS is a 10% speed loss, instead of a win</span></div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; stbi__uint16 code[256];</div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> values[256];</div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size[257];</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxcode[18];</div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="keywordtype">int</span> delta[17]; <span class="comment">// old &#39;firstsymbol&#39; - old &#39;firstcode&#39;</span></div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;} stbi__huffman;</div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;{</div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; stbi__context *s;</div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; stbi__huffman huff_dc[4];</div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; stbi__huffman huff_ac[4];</div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; stbi__uint16 dequant[4][64];</div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; stbi__int16 fast_ac[4][1 &lt;&lt; FAST_BITS];</div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment">// sizes for components, interleaved MCUs</span></div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="keywordtype">int</span> img_h_max, img_v_max;</div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="keywordtype">int</span> img_mcu_x, img_mcu_y;</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keywordtype">int</span> img_mcu_w, img_mcu_h;</div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;</div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment">// definition of jpeg image component</span></div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keyword">struct</span></div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; {</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keywordtype">int</span> id;</div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="keywordtype">int</span> h,v;</div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; <span class="keywordtype">int</span> tq;</div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keywordtype">int</span> hd,ha;</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="keywordtype">int</span> dc_pred;</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; stbi__l2h_gamma = gamma;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;}</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#af946583656a362a316b40c0421c20561">stbi_ldr_to_hdr_scale</a>(<span class="keywordtype">float</span> scale)</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;{</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; stbi__l2h_scale = scale;</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;}</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> stbi__h2l_gamma_i = 1.0f / 2.2f, stbi__h2l_scale_i = 1.0f;</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ab18889e43518d6b4421b705782bb1b5e">stbi_hdr_to_ldr_gamma</a>(<span class="keywordtype">float</span> gamma)</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;{</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; stbi__h2l_gamma_i = 1 / gamma;</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;}</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#ae21cc1184eeb5cc814699f1ed62c5258">stbi_hdr_to_ldr_scale</a>(<span class="keywordtype">float</span> scale)</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;{</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; stbi__h2l_scale_i = 1 / scale;</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;}</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;<span class="comment">// Common code used by all image loaders</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;<span class="keyword">enum</span> { STBI__SCAN_load = 0, STBI__SCAN_type, STBI__SCAN_header };</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__refill_buffer(stbi__context *s)</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;{</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; <span class="keywordtype">int</span> n = (s-&gt;io.read)(s-&gt;io_user_data, (<span class="keywordtype">char</span> *)s-&gt;buffer_start, s-&gt;buflen);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="keywordflow">if</span> (n == 0) {</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; <span class="comment">// at end of file, treat same as if from memory, but need to handle case</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <span class="comment">// where s-&gt;img_buffer isn&#39;t pointing to safe memory, e.g. 0-byte file</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; s-&gt;read_from_callbacks = 0;</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; s-&gt;img_buffer = s-&gt;buffer_start;</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; s-&gt;img_buffer_end = s-&gt;buffer_start + 1;</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; *s-&gt;img_buffer = 0;</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; s-&gt;img_buffer = s-&gt;buffer_start;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; s-&gt;img_buffer_end = s-&gt;buffer_start + n;</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; }</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;}</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__get8(stbi__context *s)</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;{</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_buffer &lt; s-&gt;img_buffer_end)</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; <span class="keywordflow">return</span> *s-&gt;img_buffer++;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keywordflow">if</span> (s-&gt;read_from_callbacks) {</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; stbi__refill_buffer(s);</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keywordflow">return</span> *s-&gt;img_buffer++;</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; }</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;}</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__at_eof(stbi__context *s)</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;{</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordflow">if</span> (!(s-&gt;io.eof)(s-&gt;io_user_data))</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <span class="comment">// if feof() is true, check if buffer = end</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; <span class="comment">// special case: we&#39;ve only got the special 0 character at the end</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="keywordflow">if</span> (s-&gt;read_from_callbacks == 0)</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; }</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; <span class="keywordflow">return</span> s-&gt;img_buffer &gt;= s-&gt;img_buffer_end;</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;}</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__skip(stbi__context *s, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;{</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; <span class="keywordflow">if</span> (n &lt; 0) {</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; }</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="keywordtype">int</span> blen = (int)(s-&gt;img_buffer_end - s-&gt;img_buffer);</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="keywordflow">if</span> (blen &lt; n) {</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; (s-&gt;io.skip)(s-&gt;io_user_data, n - blen);</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; }</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; }</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; s-&gt;img_buffer += n;</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;}</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__getn(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *buffer, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;{</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keywordflow">if</span> (s-&gt;io.read) {</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keywordtype">int</span> blen = (int)(s-&gt;img_buffer_end - s-&gt;img_buffer);</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keywordflow">if</span> (blen &lt; n) {</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keywordtype">int</span> res, count;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; memcpy(buffer, s-&gt;img_buffer, blen);</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; count =</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; (s-&gt;io.read)(s-&gt;io_user_data, (<span class="keywordtype">char</span> *)buffer + blen, n - blen);</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; res = (count == (n - blen));</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; s-&gt;img_buffer = s-&gt;img_buffer_end;</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="keywordflow">return</span> res;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; }</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; }</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_buffer + n &lt;= s-&gt;img_buffer_end) {</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; memcpy(buffer, s-&gt;img_buffer, n);</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; s-&gt;img_buffer += n;</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;}</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__get16be(stbi__context *s)</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;{</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="keywordtype">int</span> z = stbi__get8(s);</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="keywordflow">return</span> (z &lt;&lt; 8) + stbi__get8(s);</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;}</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;<span class="keyword">static</span> stbi__uint32 stbi__get32be(stbi__context *s)</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;{</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; stbi__uint32 z = stbi__get16be(s);</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keywordflow">return</span> (z &lt;&lt; 16) + stbi__get16be(s);</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;}</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;<span class="preprocessor">#if defined(STBI_NO_BMP) &amp;&amp; defined(STBI_NO_TGA) &amp;&amp; defined(STBI_NO_GIF)</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;<span class="preprocessor"></span><span class="comment">// nothing</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__get16le(stbi__context *s)</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;{</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordtype">int</span> z = stbi__get8(s);</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordflow">return</span> z + (stbi__get8(s) &lt;&lt; 8);</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;}</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> stbi__uint32 stbi__get32le(stbi__context *s)</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;{</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; stbi__uint32 z = stbi__get16le(s);</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="keywordflow">return</span> z + (stbi__get16le(s) &lt;&lt; 16);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;}</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="preprocessor">#define STBI__BYTECAST(x) \</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;<span class="preprocessor"> ((stbi_uc)((x)&amp;255)) // truncate int to byte without warnings</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;<span class="comment">// generic converter from built-in img_n to req_comp</span></div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;<span class="comment">// individual types do this automatically as much as possible (e.g. jpeg</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;<span class="comment">// does all cases internally since it needs to colorspace convert anyway,</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;<span class="comment">// and it never has alpha, so very few cases ). png can automatically</span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;<span class="comment">// interleave an alpha=255 channel, but falls back to this for other cases</span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="comment">// assume data buffer is malloced, so malloc a new one and free that one</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;<span class="comment">// only failure mode is malloc failing</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__compute_y(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b)</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;{</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(((r * 77) + (g * 150) + (29 * b)) &gt;&gt; 8);</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;}</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *stbi__convert_format(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> img_n,</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keywordtype">int</span> req_comp, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x,</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y)</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;{</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *good;</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; <span class="keywordflow">if</span> (req_comp == img_n)</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="keywordflow">return</span> data;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; STBI_ASSERT(req_comp &gt;= 1 &amp;&amp; req_comp &lt;= 4);</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; good = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)stbi__malloc_mad3(req_comp, x, y, 0);</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="keywordflow">if</span> (good == NULL) {</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; }</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; (int)y; ++j) {</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src = data + j * x * img_n;</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *dest = good + j * x * req_comp;</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="preprocessor">#define STBI__COMBO(a, b) ((a)*8 + (b))</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__CASE(a, b) \</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="preprocessor"> case STBI__COMBO(a, b): \</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="preprocessor"> for (i = x - 1; i &gt;= 0; --i, src += a, dest += b)</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="preprocessor"></span> <span class="comment">// convert source image with img_n components to one with req_comp</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; <span class="comment">// components; avoid switch per pixel, so use switch per scanline and</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="comment">// massive macros</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; <span class="keywordflow">switch</span> (STBI__COMBO(img_n, req_comp)) {</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; STBI__CASE(1, 2) { dest[0] = src[0], dest[1] = 255; }</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; STBI__CASE(1, 3) { dest[0] = dest[1] = dest[2] = src[0]; }</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; STBI__CASE(1, 4)</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; {</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; dest[0] = dest[1] = dest[2] = src[0], dest[3] = 255;</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; }</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; STBI__CASE(2, 1) { dest[0] = src[0]; }</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; STBI__CASE(2, 3) { dest[0] = dest[1] = dest[2] = src[0]; }</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; STBI__CASE(2, 4)</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; {</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; dest[0] = dest[1] = dest[2] = src[0], dest[3] = src[1];</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; }</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; STBI__CASE(3, 4)</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; {</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; dest[0] = src[0], dest[1] = src[1], dest[2] = src[2],</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; dest[3] = 255;</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; }</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; STBI__CASE(3, 1)</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; {</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; dest[0] = stbi__compute_y(src[0], src[1], src[2]);</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; }</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; STBI__CASE(3, 2)</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; {</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; dest[0] = stbi__compute_y(src[0], src[1], src[2]),</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; dest[1] = 255;</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; }</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; STBI__CASE(4, 1)</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; {</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; dest[0] = stbi__compute_y(src[0], src[1], src[2]);</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; }</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; STBI__CASE(4, 2)</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; {</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; dest[0] = stbi__compute_y(src[0], src[1], src[2]),</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; dest[1] = src[3];</div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; }</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; STBI__CASE(4, 3)</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; {</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; dest[0] = src[0], dest[1] = src[1], dest[2] = src[2];</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; }</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; STBI_ASSERT(0);</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; }</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;<span class="preprocessor">#undef STBI__CASE</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;</div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="keywordtype">int</span> x,y,w2,h2;</div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data;</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <span class="keywordtype">void</span> *raw_data, *raw_coeff;</div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *linebuf;</div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <span class="keywordtype">short</span> *coeff; <span class="comment">// progressive only</span></div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keywordtype">int</span> coeff_w, coeff_h; <span class="comment">// number of 8x8 coefficient blocks</span></div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; } img_comp[4];</div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;</div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; stbi__uint32 code_buffer; <span class="comment">// jpeg entropy-coded buffer</span></div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keywordtype">int</span> code_bits; <span class="comment">// number of valid bits</span></div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> marker; <span class="comment">// marker seen while filling entropy buffer</span></div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordtype">int</span> nomore; <span class="comment">// flag if we saw a marker so must stop</span></div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;</div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keywordtype">int</span> progressive;</div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keywordtype">int</span> spec_start;</div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <span class="keywordtype">int</span> spec_end;</div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="keywordtype">int</span> succ_high;</div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keywordtype">int</span> succ_low;</div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="keywordtype">int</span> eob_run;</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <span class="keywordtype">int</span> jfif;</div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; <span class="keywordtype">int</span> app14_color_transform; <span class="comment">// Adobe APP14 tag</span></div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; <span class="keywordtype">int</span> rgb;</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <span class="keywordtype">int</span> scan_n, order[4];</div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; <span class="keywordtype">int</span> restart_interval, todo;</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keywordflow">return</span> good;</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;}</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="keyword">static</span> stbi__uint16 stbi__compute_y_16(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b)</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;{</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keywordflow">return</span> (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) &gt;&gt; 8);</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;}</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;<span class="keyword">static</span> stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, <span class="keywordtype">int</span> img_n,</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="keywordtype">int</span> req_comp, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x,</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y)</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;{</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; stbi__uint16 *good;</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="keywordflow">if</span> (req_comp == img_n)</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keywordflow">return</span> data;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; STBI_ASSERT(req_comp &gt;= 1 &amp;&amp; req_comp &lt;= 4);</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2);</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; <span class="keywordflow">if</span> (good == NULL) {</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <span class="keywordflow">return</span> (stbi__uint16 *)stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; }</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;<span class="comment">// kernels</span></div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; void (*idct_block_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64]);</div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; void (*YCbCr_to_RGB_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcb, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcr, <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step);</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *(*resample_row_hv_2_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs);</div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;} stbi__jpeg;</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;</div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__build_huffman(stbi__huffman *h, <span class="keywordtype">int</span> *count)</div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;{</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; <span class="keywordtype">int</span> i,j,k=0,code;</div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="comment">// build size list for each symbol (from JPEG spec)</span></div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 16; ++i)</div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; count[i]; ++j)</div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; h-&gt;size[k++] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) (i+1);</div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; h-&gt;size[k] = 0;</div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;</div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; <span class="comment">// compute actual symbols (from jpeg spec)</span></div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; code = 0;</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; k = 0;</div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keywordflow">for</span>(j=1; j &lt;= 16; ++j) {</div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; <span class="comment">// compute delta to add to code to compute symbol id</span></div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; h-&gt;delta[j] = k - code;</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <span class="keywordflow">if</span> (h-&gt;size[k] == j) {</div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keywordflow">while</span> (h-&gt;size[k] == j)</div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; h-&gt;code[k++] = (stbi__uint16) (code++);</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; <span class="keywordflow">if</span> (code-1 &gt;= (1 &lt;&lt; j)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad code lengths&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; }</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; <span class="comment">// compute largest code + 1 for this size, preshifted as needed later</span></div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; h-&gt;maxcode[j] = code &lt;&lt; (16-j);</div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; code &lt;&lt;= 1;</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; }</div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; h-&gt;maxcode[j] = 0xffffffff;</div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;</div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="comment">// build non-spec acceleration table; 255 is flag for not-accelerated</span></div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; memset(h-&gt;fast, 255, 1 &lt;&lt; FAST_BITS);</div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; k; ++i) {</div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keywordtype">int</span> s = h-&gt;size[i];</div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; <span class="keywordflow">if</span> (s &lt;= FAST_BITS) {</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <span class="keywordtype">int</span> c = h-&gt;code[i] &lt;&lt; (FAST_BITS-s);</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; <span class="keywordtype">int</span> m = 1 &lt;&lt; (FAST_BITS-s);</div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; m; ++j) {</div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; h-&gt;fast[c+j] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) i;</div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; }</div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; }</div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; }</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;}</div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;<span class="comment">// build a table that decodes both magnitude and value of small ACs in</span></div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;<span class="comment">// one go.</span></div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)</div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;{</div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; (1 &lt;&lt; FAST_BITS); ++i) {</div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fast = h-&gt;fast[i];</div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; fast_ac[i] = 0;</div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; <span class="keywordflow">if</span> (fast &lt; 255) {</div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="keywordtype">int</span> rs = h-&gt;values[fast];</div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; <span class="keywordtype">int</span> run = (rs &gt;&gt; 4) &amp; 15;</div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; <span class="keywordtype">int</span> magbits = rs &amp; 15;</div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; <span class="keywordtype">int</span> len = h-&gt;size[fast];</div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; <span class="keywordflow">if</span> (magbits &amp;&amp; len + magbits &lt;= FAST_BITS) {</div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="comment">// magnitude code followed by receive_extend code</span></div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <span class="keywordtype">int</span> k = ((i &lt;&lt; len) &amp; ((1 &lt;&lt; FAST_BITS) - 1)) &gt;&gt; (FAST_BITS - magbits);</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keywordtype">int</span> m = 1 &lt;&lt; (magbits - 1);</div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; <span class="keywordflow">if</span> (k &lt; m) k += (~0<a class="code" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822a4c614360da93c0a041b22e537de151eb">U</a> &lt;&lt; magbits) + 1;</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; <span class="comment">// if the result is small enough, we can fit it in fast_ac table</span></div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; <span class="keywordflow">if</span> (k &gt;= -128 &amp;&amp; k &lt;= 127)</div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; fast_ac[i] = (stbi__int16) ((k &lt;&lt; 8) + (run &lt;&lt; 4) + (len + magbits));</div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; }</div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; }</div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; }</div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;}</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;</div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__grow_buffer_unsafe(stbi__jpeg *j)</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; (int)y; ++j) {</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; stbi__uint16 *src = data + j * x * img_n;</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; stbi__uint16 *dest = good + j * x * req_comp;</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;<span class="preprocessor">#define STBI__COMBO(a, b) ((a)*8 + (b))</span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__CASE(a, b) \</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="preprocessor"> case STBI__COMBO(a, b): \</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;<span class="preprocessor"> for (i = x - 1; i &gt;= 0; --i, src += a, dest += b)</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="preprocessor"></span> <span class="comment">// convert source image with img_n components to one with req_comp</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="comment">// components; avoid switch per pixel, so use switch per scanline and</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="comment">// massive macros</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="keywordflow">switch</span> (STBI__COMBO(img_n, req_comp)) {</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; STBI__CASE(1, 2) { dest[0] = src[0], dest[1] = 0xffff; }</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; STBI__CASE(1, 3) { dest[0] = dest[1] = dest[2] = src[0]; }</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; STBI__CASE(1, 4)</div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; {</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; dest[0] = dest[1] = dest[2] = src[0], dest[3] = 0xffff;</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; }</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; STBI__CASE(2, 1) { dest[0] = src[0]; }</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; STBI__CASE(2, 3) { dest[0] = dest[1] = dest[2] = src[0]; }</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; STBI__CASE(2, 4)</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; {</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; dest[0] = dest[1] = dest[2] = src[0], dest[3] = src[1];</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; }</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; STBI__CASE(3, 4)</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; {</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; dest[0] = src[0], dest[1] = src[1], dest[2] = src[2],</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; dest[3] = 0xffff;</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; }</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; STBI__CASE(3, 1)</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; {</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; }</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; STBI__CASE(3, 2)</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; {</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; dest[0] = stbi__compute_y_16(src[0], src[1], src[2]),</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; dest[1] = 0xffff;</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; }</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; STBI__CASE(4, 1)</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; {</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; dest[0] = stbi__compute_y_16(src[0], src[1], src[2]);</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; }</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; STBI__CASE(4, 2)</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; {</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; dest[0] = stbi__compute_y_16(src[0], src[1], src[2]),</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; dest[1] = src[3];</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; }</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; STBI__CASE(4, 3)</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; {</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; dest[0] = src[0], dest[1] = src[1], dest[2] = src[2];</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; }</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; STBI_ASSERT(0);</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; }</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;<span class="preprocessor">#undef STBI__CASE</span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;<span class="preprocessor"></span> }</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; <span class="keywordflow">return</span> good;</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;}</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;<span class="preprocessor">#ifndef STBI_NO_LINEAR</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__ldr_to_hdr(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp)</div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;{</div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; <span class="keywordtype">int</span> b = j-&gt;nomore ? 0 : stbi__get8(j-&gt;s);</div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; <span class="keywordflow">if</span> (b == 0xff) {</div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; <span class="keywordtype">int</span> c = stbi__get8(j-&gt;s);</div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <span class="keywordflow">while</span> (c == 0xff) c = stbi__get8(j-&gt;s); <span class="comment">// consume fill bytes</span></div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <span class="keywordflow">if</span> (c != 0) {</div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; j-&gt;marker = (<span class="keywordtype">unsigned</span> char) c;</div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; j-&gt;nomore = 1;</div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; }</div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; }</div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; j-&gt;code_buffer |= b &lt;&lt; (24 - j-&gt;code_bits);</div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; j-&gt;code_bits += 8;</div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; } <span class="keywordflow">while</span> (j-&gt;code_bits &lt;= 24);</div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;}</div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;</div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;<span class="comment">// (1 &lt;&lt; n) - 1</span></div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;<span class="keyword">static</span> stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535};</div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;</div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="comment">// decode a jpeg huffman value from the bitstream</span></div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)</div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;{</div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> temp;</div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; <span class="keywordtype">int</span> c,k;</div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;</div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="comment">// look at the top FAST_BITS and determine what symbol ID it is,</span></div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <span class="comment">// if the code is &lt;= FAST_BITS</span></div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS)-1);</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; k = h-&gt;fast[c];</div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <span class="keywordflow">if</span> (k &lt; 255) {</div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; <span class="keywordtype">int</span> s = h-&gt;size[k];</div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <span class="keywordflow">if</span> (s &gt; j-&gt;code_bits)</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; j-&gt;code_bits -= s;</div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="keywordflow">return</span> h-&gt;values[k];</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; }</div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;</div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; <span class="comment">// naive test is to shift the code_buffer down so k bits are</span></div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <span class="comment">// valid, then test against maxcode. To speed this up, we&#39;ve</span></div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="comment">// preshifted maxcode left so that it has (16-k) 0s at the</span></div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; <span class="comment">// end; in other words, regardless of the number of bits, it</span></div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="comment">// wants to be compared against something shifted to have 16;</span></div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="comment">// that way we don&#39;t need to shift inside the loop.</span></div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; temp = j-&gt;code_buffer &gt;&gt; 16;</div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; <span class="keywordflow">for</span> (k=FAST_BITS+1 ; ; ++k)</div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; <span class="keywordflow">if</span> (temp &lt; h-&gt;maxcode[k])</div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; <span class="keywordflow">if</span> (k == 17) {</div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; <span class="comment">// error! code not found</span></div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; j-&gt;code_bits -= 16;</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; }</div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; <span class="keywordflow">if</span> (k &gt; j-&gt;code_bits)</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <span class="comment">// convert the huffman code to the symbol id</span></div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; c = ((j-&gt;code_buffer &gt;&gt; (32 - k)) &amp; stbi__bmask[k]) + h-&gt;delta[k];</div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; STBI_ASSERT((((j-&gt;code_buffer) &gt;&gt; (32 - h-&gt;size[c])) &amp; stbi__bmask[h-&gt;size[c]]) == h-&gt;code[c]);</div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="comment">// convert the id to a symbol</span></div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; j-&gt;code_bits -= k;</div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; j-&gt;code_buffer &lt;&lt;= k;</div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; <span class="keywordflow">return</span> h-&gt;values[c];</div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;}</div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;<span class="comment">// bias[n] = (-1&lt;&lt;n) + 1</span></div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> stbi__jbias[16] = {0,-1,-3,-7,-15,-31,-63,-127,-255,-511,-1023,-2047,-4095,-8191,-16383,-32767};</div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;<span class="comment">// combined JPEG &#39;receive&#39; and JPEG &#39;extend&#39;, since baseline</span></div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;<span class="comment">// always extends everything it receives.</span></div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__extend_receive(stbi__jpeg *j, <span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;{</div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="keywordtype">int</span> sgn;</div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; n) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; sgn = (stbi__int32)j-&gt;code_buffer &gt;&gt; 31; <span class="comment">// sign bit is always in MSB</span></div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; k = stbi_lrot(j-&gt;code_buffer, n);</div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; STBI_ASSERT(n &gt;= 0 &amp;&amp; n &lt; (<span class="keywordtype">int</span>) (<span class="keyword">sizeof</span>(stbi__bmask)/<span class="keyword">sizeof</span>(*stbi__bmask)));</div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; j-&gt;code_buffer = k &amp; ~stbi__bmask[n];</div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; k &amp;= stbi__bmask[n];</div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; j-&gt;code_bits -= n;</div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; <span class="keywordflow">return</span> k + (stbi__jbias[n] &amp; ~sgn);</div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;}</div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;</div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;<span class="comment">// get some unsigned bits</span></div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_get_bits(stbi__jpeg *j, <span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;{</div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; n) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; k = stbi_lrot(j-&gt;code_buffer, n);</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; j-&gt;code_buffer = k &amp; ~stbi__bmask[n];</div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; k &amp;= stbi__bmask[n];</div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; j-&gt;code_bits -= n;</div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="keywordflow">return</span> k;</div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;}</div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;</div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_get_bit(stbi__jpeg *j)</div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;{</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 1) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; k = j-&gt;code_buffer;</div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; j-&gt;code_buffer &lt;&lt;= 1;</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; --j-&gt;code_bits;</div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; <span class="keywordflow">return</span> k &amp; 0x80000000;</div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;}</div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="comment">// given a value that&#39;s at position X in the zigzag stream,</span></div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="comment">// where does it appear in the 8x8 matrix coded as row-major?</span></div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__jpeg_dezigzag[64+15] =</div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;{</div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; 0, 1, 8, 16, 9, 2, 3, 10,</div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; 17, 24, 32, 25, 18, 11, 4, 5,</div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; 12, 19, 26, 33, 40, 48, 41, 34,</div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; 27, 20, 13, 6, 7, 14, 21, 28,</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; 35, 42, 49, 56, 57, 50, 43, 36,</div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; 29, 22, 15, 23, 30, 37, 44, 51,</div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; 58, 59, 52, 45, 38, 31, 39, 46,</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; 53, 60, 61, 54, 47, 55, 62, 63,</div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="comment">// let corrupt input sample past end</span></div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; 63, 63, 63, 63, 63, 63, 63, 63,</div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; 63, 63, 63, 63, 63, 63, 63</div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;};</div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;<span class="comment">// decode one 64-entry block--</span></div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block(stbi__jpeg *j, <span class="keywordtype">short</span> data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, <span class="keywordtype">int</span> b, stbi__uint16 *dequant)</div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;{</div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="keywordtype">int</span> diff,dc,k;</div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="keywordtype">int</span> t;</div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;</div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; t = stbi__jpeg_huff_decode(j, hdc);</div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; <span class="keywordflow">if</span> (t &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;</div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <span class="comment">// 0 all the ac values now so we can do it 32-bits at a time</span></div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; memset(data,0,64*<span class="keyword">sizeof</span>(data[0]));</div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;</div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; diff = t ? stbi__extend_receive(j, t) : 0;</div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; dc = j-&gt;img_comp[b].dc_pred + diff;</div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; j-&gt;img_comp[b].dc_pred = dc;</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; data[0] = (short) (dc * dequant[0]);</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;</div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="comment">// decode AC components, see JPEG spec</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; k = 1;</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> zig;</div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keywordtype">int</span> c,r,s;</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS)-1);</div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; r = fac[c];</div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keywordflow">if</span> (r) { <span class="comment">// fast-AC path</span></div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; k += (r &gt;&gt; 4) &amp; 15; <span class="comment">// run</span></div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; s = r &amp; 15; <span class="comment">// combined length</span></div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; j-&gt;code_bits -= s;</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="comment">// decode into unzigzag&#39;d location</span></div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; data[zig] = (short) ((r &gt;&gt; 8) * dequant[zig]);</div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac);</div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; s = rs &amp; 15;</div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; r = rs &gt;&gt; 4;</div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keywordflow">if</span> (rs != 0xf0) <span class="keywordflow">break</span>; <span class="comment">// end block</span></div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; k += 16;</div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; k += r;</div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="comment">// decode into unzigzag&#39;d location</span></div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]);</div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; }</div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; }</div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; } <span class="keywordflow">while</span> (k &lt; 64);</div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;}</div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, <span class="keywordtype">short</span> data[64], stbi__huffman *hdc, <span class="keywordtype">int</span> b)</div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;{</div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keywordtype">int</span> diff,dc;</div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; <span class="keywordtype">int</span> t;</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="keywordflow">if</span> (j-&gt;spec_end != 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t merge dc and ac&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;</div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="keywordflow">if</span> (j-&gt;succ_high == 0) {</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="comment">// first scan for DC coefficient, must be first</span></div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; memset(data,0,64*<span class="keyword">sizeof</span>(data[0])); <span class="comment">// 0 all the ac values now</span></div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; t = stbi__jpeg_huff_decode(j, hdc);</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; diff = t ? stbi__extend_receive(j, t) : 0;</div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; dc = j-&gt;img_comp[b].dc_pred + diff;</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; j-&gt;img_comp[b].dc_pred = dc;</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; data[0] = (short) (dc &lt;&lt; j-&gt;succ_low);</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="comment">// refinement scan for DC coefficient</span></div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; data[0] += (<span class="keywordtype">short</span>) (1 &lt;&lt; j-&gt;succ_low);</div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; }</div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keywordtype">int</span> i, k, n;</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; <span class="keywordtype">float</span> *output;</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; <span class="keywordflow">if</span> (!data)</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; output = (<span class="keywordtype">float</span> *)stbi__malloc_mad4(x, y, comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0);</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <span class="keywordflow">if</span> (output == NULL) {</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; }</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; <span class="comment">// compute number of non-alpha components</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; <span class="keywordflow">if</span> (comp &amp; 1)</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; n = comp;</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; n = comp - 1;</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; x * y; ++i) {</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; n; ++k) {</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; output[i * comp + k] =</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) *</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; stbi__l2h_scale);</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; }</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="keywordflow">if</span> (k &lt; comp)</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; output[i * comp + k] = data[i * comp + k] / 255.0f;</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; }</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; <span class="keywordflow">return</span> output;</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;}</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__float2int(x) ((int)(x))</span></div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__hdr_to_ldr(<span class="keywordtype">float</span> *data, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> comp)</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;{</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; <span class="keywordtype">int</span> i, k, n;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *output;</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <span class="keywordflow">if</span> (!data)</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; output = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(x, y, comp, 0);</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="keywordflow">if</span> (output == NULL) {</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; }</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <span class="comment">// compute number of non-alpha components</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="keywordflow">if</span> (comp &amp; 1)</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; n = comp;</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; n = comp - 1;</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; x * y; ++i) {</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; n; ++k) {</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; <span class="keywordtype">float</span> z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i,</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; stbi__h2l_gamma_i) *</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; 255 +</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; 0.5f;</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; <span class="keywordflow">if</span> (z &lt; 0)</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; z = 0;</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; <span class="keywordflow">if</span> (z &gt; 255)</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; z = 255;</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; output[i * comp + k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)stbi__float2int(z);</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; }</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; <span class="keywordflow">if</span> (k &lt; comp) {</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <span class="keywordtype">float</span> z = data[i * comp + k] * 255 + 0.5f;</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; <span class="keywordflow">if</span> (z &lt; 0)</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; z = 0;</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <span class="keywordflow">if</span> (z &gt; 255)</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; z = 255;</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; output[i * comp + k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)stbi__float2int(z);</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; }</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; }</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; STBI_FREE(data);</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="keywordflow">return</span> output;</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;}</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <span class="comment">// &quot;baseline&quot; JPEG/JFIF decoder</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="comment">// simple implementation</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="comment">// - doesn&#39;t support delayed output of y-dimension</span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; <span class="comment">// - simple interface (only one output format: 8-bit interleaved RGB)</span></div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; <span class="comment">// - doesn&#39;t try to recover corrupt jpegs</span></div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; <span class="comment">// - doesn&#39;t allow partial loading, loading multiple at once</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="comment">// - still fast on x86 (copying globals into locals doesn&#39;t help x86)</span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; <span class="comment">// - allocates lots of intermediate memory (full size of all</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; <span class="comment">// components)</span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; <span class="comment">// - non-interleaved case requires this anyway</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; <span class="comment">// - allows good upsampling (see next)</span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; <span class="comment">// high-quality</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; <span class="comment">// - upsampled channels are bilinearly interpolated, even across blocks</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; <span class="comment">// - quality integer IDCT derived from IJG&#39;s &#39;slow&#39;</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; <span class="comment">// performance</span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="comment">// - fast huffman; reasonable integer IDCT</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; <span class="comment">// - some SIMD kernels for common paths on targets with SSE2/NEON</span></div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="comment">// - uses a lot of intermediate memory, could cache poorly</span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="comment">// huffman decoding acceleration</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="preprocessor">#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fast[1 &lt;&lt; FAST_BITS];</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; <span class="comment">// weirdly, repacking this into AoS is a 10% speed loss, instead of a win</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; stbi__uint16 code[256];</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> values[256];</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size[257];</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxcode[18];</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <span class="keywordtype">int</span> delta[17]; <span class="comment">// old &#39;firstsymbol&#39; - old &#39;firstcode&#39;</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;} stbi__huffman;</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; stbi__context *s;</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; stbi__huffman huff_dc[4];</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; stbi__huffman huff_ac[4];</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; stbi__uint16 dequant[4][64];</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; stbi__int16 fast_ac[4][1 &lt;&lt; FAST_BITS];</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <span class="comment">// sizes for components, interleaved MCUs</span></div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; <span class="keywordtype">int</span> img_h_max, img_v_max;</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keywordtype">int</span> img_mcu_x, img_mcu_y;</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; <span class="keywordtype">int</span> img_mcu_w, img_mcu_h;</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; <span class="comment">// definition of jpeg image component</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="keywordtype">int</span> id;</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keywordtype">int</span> h, v;</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; <span class="keywordtype">int</span> tq;</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keywordtype">int</span> hd, ha;</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; <span class="keywordtype">int</span> dc_pred;</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; <span class="keywordtype">int</span> x, y, w2, h2;</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *data;</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="keywordtype">void</span> *raw_data, *raw_coeff;</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *linebuf;</div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; <span class="keywordtype">short</span> *coeff; <span class="comment">// progressive only</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keywordtype">int</span> coeff_w, coeff_h; <span class="comment">// number of 8x8 coefficient blocks</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; } img_comp[4];</div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; stbi__uint32 code_buffer; <span class="comment">// jpeg entropy-coded buffer</span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <span class="keywordtype">int</span> code_bits; <span class="comment">// number of valid bits</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> marker; <span class="comment">// marker seen while filling entropy buffer</span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="keywordtype">int</span> nomore; <span class="comment">// flag if we saw a marker so must stop</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; <span class="keywordtype">int</span> progressive;</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keywordtype">int</span> spec_start;</div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; <span class="keywordtype">int</span> spec_end;</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; <span class="keywordtype">int</span> succ_high;</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="keywordtype">int</span> succ_low;</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; <span class="keywordtype">int</span> eob_run;</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; <span class="keywordtype">int</span> jfif;</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="keywordtype">int</span> app14_color_transform; <span class="comment">// Adobe APP14 tag</span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keywordtype">int</span> rgb;</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keywordtype">int</span> scan_n, order[4];</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="keywordtype">int</span> restart_interval, todo;</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="comment">// kernels</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; void (*idct_block_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64]);</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; void (*YCbCr_to_RGB_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y,</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcb, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcr,</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step);</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *(*resample_row_hv_2_kernel)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs);</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;} stbi__jpeg;</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__build_huffman(stbi__huffman *h, <span class="keywordtype">int</span> *count)</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;{</div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keywordtype">int</span> i, j, k = 0, code;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="comment">// build size list for each symbol (from JPEG spec)</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 16; ++i)</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; count[i]; ++j)</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; h-&gt;size[k++] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(i + 1);</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; h-&gt;size[k] = 0;</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="comment">// compute actual symbols (from jpeg spec)</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; code = 0;</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; k = 0;</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; <span class="keywordflow">for</span> (j = 1; j &lt;= 16; ++j) {</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <span class="comment">// compute delta to add to code to compute symbol id</span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; h-&gt;delta[j] = k - code;</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keywordflow">if</span> (h-&gt;size[k] == j) {</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keywordflow">while</span> (h-&gt;size[k] == j)</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; h-&gt;code[k++] = (stbi__uint16)(code++);</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <span class="keywordflow">if</span> (code - 1 &gt;= (1 &lt;&lt; j))</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad code lengths&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; }</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="comment">// compute largest code + 1 for this size, preshifted as needed later</span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; h-&gt;maxcode[j] = code &lt;&lt; (16 - j);</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; code &lt;&lt;= 1;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; }</div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; h-&gt;maxcode[j] = 0xffffffff;</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="comment">// build non-spec acceleration table; 255 is flag for not-accelerated</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; memset(h-&gt;fast, 255, 1 &lt;&lt; FAST_BITS);</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; k; ++i) {</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="keywordtype">int</span> s = h-&gt;size[i];</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; <span class="keywordflow">if</span> (s &lt;= FAST_BITS) {</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="keywordtype">int</span> c = h-&gt;code[i] &lt;&lt; (FAST_BITS - s);</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="keywordtype">int</span> m = 1 &lt;&lt; (FAST_BITS - s);</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; m; ++j) {</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; h-&gt;fast[c + j] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)i;</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; }</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; }</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; }</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;}</div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;</div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;<span class="comment">// @OPTIMIZE: store non-zigzagged during the decode passes,</span></div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;<span class="comment">// and only de-zigzag when dequantizing</span></div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, <span class="keywordtype">short</span> data[64], stbi__huffman *hac, stbi__int16 *fac)</div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;<span class="comment">// build a table that decodes both magnitude and value of small ACs in</span></div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;<span class="comment">// one go.</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)</div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;{</div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keywordflow">if</span> (j-&gt;spec_start == 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t merge dc and ac&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;</div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; <span class="keywordflow">if</span> (j-&gt;succ_high == 0) {</div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keywordtype">int</span> shift = j-&gt;succ_low;</div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keywordflow">if</span> (j-&gt;eob_run) {</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; --j-&gt;eob_run;</div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; }</div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;</div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; k = j-&gt;spec_start;</div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> zig;</div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="keywordtype">int</span> c,r,s;</div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16) stbi__grow_buffer_unsafe(j);</div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS)-1);</div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; r = fac[c];</div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="keywordflow">if</span> (r) { <span class="comment">// fast-AC path</span></div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; k += (r &gt;&gt; 4) &amp; 15; <span class="comment">// run</span></div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; s = r &amp; 15; <span class="comment">// combined length</span></div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; j-&gt;code_bits -= s;</div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; data[zig] = (short) ((r &gt;&gt; 8) &lt;&lt; shift);</div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac);</div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; s = rs &amp; 15;</div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; r = rs &gt;&gt; 4;</div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; <span class="keywordflow">if</span> (r &lt; 15) {</div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; j-&gt;eob_run = (1 &lt;&lt; r);</div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="keywordflow">if</span> (r)</div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; j-&gt;eob_run += stbi__jpeg_get_bits(j, r);</div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; --j-&gt;eob_run;</div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; }</div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; k += 16;</div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; k += r;</div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; data[zig] = (short) (stbi__extend_receive(j,s) &lt;&lt; shift);</div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; }</div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; }</div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; } <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end);</div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; <span class="comment">// refinement scan for these AC coefficients</span></div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;</div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keywordtype">short</span> bit = (short) (1 &lt;&lt; j-&gt;succ_low);</div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;</div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; <span class="keywordflow">if</span> (j-&gt;eob_run) {</div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; --j-&gt;eob_run;</div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keywordflow">for</span> (k = j-&gt;spec_start; k &lt;= j-&gt;spec_end; ++k) {</div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; <span class="keywordtype">short</span> *p = &amp;data[stbi__jpeg_dezigzag[k]];</div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keywordflow">if</span> (*p != 0)</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; <span class="keywordflow">if</span> ((*p &amp; bit)==0) {</div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; <span class="keywordflow">if</span> (*p &gt; 0)</div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; *p += bit;</div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; *p -= bit;</div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; }</div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; }</div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; k = j-&gt;spec_start;</div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; <span class="keywordtype">int</span> r,s;</div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac); <span class="comment">// @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh</span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; s = rs &amp; 15;</div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; r = rs &gt;&gt; 4;</div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; <span class="keywordflow">if</span> (r &lt; 15) {</div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; j-&gt;eob_run = (1 &lt;&lt; r) - 1;</div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keywordflow">if</span> (r)</div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; j-&gt;eob_run += stbi__jpeg_get_bits(j, r);</div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; r = 64; <span class="comment">// force end of block</span></div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="comment">// r=15 s=0 should write 16 0s, so we just do</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="comment">// a run of 15 0s and then write s (which is 0),</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="comment">// so we don&#39;t have to do anything special here</span></div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; }</div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; <span class="keywordflow">if</span> (s != 1) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; <span class="comment">// sign bit</span></div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; s = bit;</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; s = -bit;</div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; }</div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; <span class="comment">// advance by r</span></div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end) {</div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; <span class="keywordtype">short</span> *p = &amp;data[stbi__jpeg_dezigzag[k++]];</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keywordflow">if</span> (*p != 0) {</div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; <span class="keywordflow">if</span> ((*p &amp; bit)==0) {</div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; <span class="keywordflow">if</span> (*p &gt; 0)</div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; *p += bit;</div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; *p -= bit;</div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; }</div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; <span class="keywordflow">if</span> (r == 0) {</div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; *p = (short) s;</div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; }</div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; --r;</div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; }</div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; }</div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; } <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end);</div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; }</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; }</div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;}</div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment">// take a -128..127 value and stbi__clamp it and convert to 0..255</span></div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__clamp(<span class="keywordtype">int</span> x)</div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;{</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="comment">// trick to use a single test to catch both cases</span></div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) x &gt; 255) {</div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">if</span> (x &lt; 0) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <span class="keywordflow">if</span> (x &gt; 255) <span class="keywordflow">return</span> 255;</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; }</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) x;</div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;}</div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;</div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;<span class="preprocessor">#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5)))</span></div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__fsh(x) ((x) &lt;&lt; 12)</span></div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;<span class="comment">// derived from jidctint -- DCT_ISLOW</span></div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;<span class="preprocessor">#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \</span></div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;<span class="preprocessor"> int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \</span></div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;<span class="preprocessor"> p2 = s2; \</span></div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;<span class="preprocessor"> p3 = s6; \</span></div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="preprocessor"> p1 = (p2+p3) * stbi__f2f(0.5411961f); \</span></div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="preprocessor"> t2 = p1 + p3*stbi__f2f(-1.847759065f); \</span></div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;<span class="preprocessor"> t3 = p1 + p2*stbi__f2f( 0.765366865f); \</span></div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="preprocessor"> p2 = s0; \</span></div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="preprocessor"> p3 = s4; \</span></div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="preprocessor"> t0 = stbi__fsh(p2+p3); \</span></div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;<span class="preprocessor"> t1 = stbi__fsh(p2-p3); \</span></div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;<span class="preprocessor"> x0 = t0+t3; \</span></div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;<span class="preprocessor"> x3 = t0-t3; \</span></div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;<span class="preprocessor"> x1 = t1+t2; \</span></div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;<span class="preprocessor"> x2 = t1-t2; \</span></div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;<span class="preprocessor"> t0 = s7; \</span></div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;<span class="preprocessor"> t1 = s5; \</span></div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;<span class="preprocessor"> t2 = s3; \</span></div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="preprocessor"> t3 = s1; \</span></div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="preprocessor"> p3 = t0+t2; \</span></div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="preprocessor"> p4 = t1+t3; \</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="preprocessor"> p1 = t0+t3; \</span></div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="preprocessor"> p2 = t1+t2; \</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="preprocessor"> p5 = (p3+p4)*stbi__f2f( 1.175875602f); \</span></div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="preprocessor"> t0 = t0*stbi__f2f( 0.298631336f); \</span></div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="preprocessor"> t1 = t1*stbi__f2f( 2.053119869f); \</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;<span class="preprocessor"> t2 = t2*stbi__f2f( 3.072711026f); \</span></div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;<span class="preprocessor"> t3 = t3*stbi__f2f( 1.501321110f); \</span></div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="preprocessor"> p1 = p5 + p1*stbi__f2f(-0.899976223f); \</span></div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<span class="preprocessor"> p2 = p5 + p2*stbi__f2f(-2.562915447f); \</span></div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="preprocessor"> p3 = p3*stbi__f2f(-1.961570560f); \</span></div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;<span class="preprocessor"> p4 = p4*stbi__f2f(-0.390180644f); \</span></div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;<span class="preprocessor"> t3 += p1+p4; \</span></div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;<span class="preprocessor"> t2 += p2+p3; \</span></div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="preprocessor"> t1 += p2+p4; \</span></div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="preprocessor"> t0 += p1+p3;</span></div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_block(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;{</div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; <span class="keywordtype">int</span> i,val[64],*v=val;</div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *o;</div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; <span class="keywordtype">short</span> *d = data;</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (1 &lt;&lt; FAST_BITS); ++i) {</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fast = h-&gt;fast[i];</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; fast_ac[i] = 0;</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keywordflow">if</span> (fast &lt; 255) {</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; <span class="keywordtype">int</span> rs = h-&gt;values[fast];</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keywordtype">int</span> run = (rs &gt;&gt; 4) &amp; 15;</div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; <span class="keywordtype">int</span> magbits = rs &amp; 15;</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; <span class="keywordtype">int</span> len = h-&gt;size[fast];</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <span class="keywordflow">if</span> (magbits &amp;&amp; len + magbits &lt;= FAST_BITS) {</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="comment">// magnitude code followed by receive_extend code</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="keywordtype">int</span> k = ((i &lt;&lt; len) &amp; ((1 &lt;&lt; FAST_BITS) - 1)) &gt;&gt;</div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; (FAST_BITS - magbits);</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="keywordtype">int</span> m = 1 &lt;&lt; (magbits - 1);</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keywordflow">if</span> (k &lt; m)</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; k += (~0<a class="code" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822a4c614360da93c0a041b22e537de151eb">U</a> &lt;&lt; magbits) + 1;</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="comment">// if the result is small enough, we can fit it in fast_ac table</span></div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="keywordflow">if</span> (k &gt;= -128 &amp;&amp; k &lt;= 127)</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; fast_ac[i] =</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; (stbi__int16)((k &lt;&lt; 8) + (run &lt;&lt; 4) + (len + magbits));</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; }</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; }</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; }</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;}</div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__grow_buffer_unsafe(stbi__jpeg *j)</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;{</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; <span class="keywordtype">int</span> b = j-&gt;nomore ? 0 : stbi__get8(j-&gt;s);</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keywordflow">if</span> (b == 0xff) {</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; <span class="keywordtype">int</span> c = stbi__get8(j-&gt;s);</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; <span class="keywordflow">while</span> (c == 0xff)</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; c = stbi__get8(j-&gt;s); <span class="comment">// consume fill bytes</span></div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <span class="keywordflow">if</span> (c != 0) {</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; j-&gt;marker = (<span class="keywordtype">unsigned</span> char)c;</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; j-&gt;nomore = 1;</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; }</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; }</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; j-&gt;code_buffer |= b &lt;&lt; (24 - j-&gt;code_bits);</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; j-&gt;code_bits += 8;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; } <span class="keywordflow">while</span> (j-&gt;code_bits &lt;= 24);</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;}</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;<span class="comment">// (1 &lt;&lt; n) - 1</span></div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;<span class="keyword">static</span> stbi__uint32 stbi__bmask[17] = {0, 1, 3, 7, 15, 31,</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; 63, 127, 255, 511, 1023, 2047,</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; 4095, 8191, 16383, 32767, 65535};</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;<span class="comment">// decode a jpeg huffman value from the bitstream</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;{</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> temp;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; <span class="keywordtype">int</span> c, k;</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16)</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; <span class="comment">// look at the top FAST_BITS and determine what symbol ID it is,</span></div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <span class="comment">// if the code is &lt;= FAST_BITS</span></div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS) - 1);</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; k = h-&gt;fast[c];</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keywordflow">if</span> (k &lt; 255) {</div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; <span class="keywordtype">int</span> s = h-&gt;size[k];</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; <span class="keywordflow">if</span> (s &gt; j-&gt;code_bits)</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; j-&gt;code_bits -= s;</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="keywordflow">return</span> h-&gt;values[k];</div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; }</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <span class="comment">// naive test is to shift the code_buffer down so k bits are</span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; <span class="comment">// valid, then test against maxcode. To speed this up, we&#39;ve</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; <span class="comment">// preshifted maxcode left so that it has (16-k) 0s at the</span></div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="comment">// end; in other words, regardless of the number of bits, it</span></div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; <span class="comment">// wants to be compared against something shifted to have 16;</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; <span class="comment">// that way we don&#39;t need to shift inside the loop.</span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; temp = j-&gt;code_buffer &gt;&gt; 16;</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keywordflow">for</span> (k = FAST_BITS + 1;; ++k)</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="keywordflow">if</span> (temp &lt; h-&gt;maxcode[k])</div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; <span class="keywordflow">if</span> (k == 17) {</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="comment">// error! code not found</span></div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; j-&gt;code_bits -= 16;</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; }</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordflow">if</span> (k &gt; j-&gt;code_bits)</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="comment">// convert the huffman code to the symbol id</span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; c = ((j-&gt;code_buffer &gt;&gt; (32 - k)) &amp; stbi__bmask[k]) + h-&gt;delta[k];</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; STBI_ASSERT((((j-&gt;code_buffer) &gt;&gt; (32 - h-&gt;size[c])) &amp;</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; stbi__bmask[h-&gt;size[c]]) == h-&gt;code[c]);</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="comment">// convert the id to a symbol</span></div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; j-&gt;code_bits -= k;</div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; j-&gt;code_buffer &lt;&lt;= k;</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <span class="keywordflow">return</span> h-&gt;values[c];</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;}</div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;</div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="comment">// bias[n] = (-1&lt;&lt;n) + 1</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <span class="keyword">const</span> stbi__jbias[16] = {0, -1, -3, -7, -15, -31,</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; -63, -127, -255, -511, -1023, -2047,</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; -4095, -8191, -16383, -32767};</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="comment">// combined JPEG &#39;receive&#39; and JPEG &#39;extend&#39;, since baseline</span></div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="comment">// always extends everything it receives.</span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__extend_receive(stbi__jpeg *j, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;{</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keywordtype">int</span> sgn;</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; n)</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; sgn = (stbi__int32)j-&gt;code_buffer &gt;&gt; 31; <span class="comment">// sign bit is always in MSB</span></div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; k = stbi_lrot(j-&gt;code_buffer, n);</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; STBI_ASSERT(n &gt;= 0 &amp;&amp;</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; n &lt; (<span class="keywordtype">int</span>)(<span class="keyword">sizeof</span>(stbi__bmask) / <span class="keyword">sizeof</span>(*stbi__bmask)));</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; j-&gt;code_buffer = k &amp; ~stbi__bmask[n];</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; k &amp;= stbi__bmask[n];</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; j-&gt;code_bits -= n;</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <span class="keywordflow">return</span> k + (stbi__jbias[n] &amp; ~sgn);</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;}</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="comment">// get some unsigned bits</span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_get_bits(stbi__jpeg *j, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;{</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; n)</div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; k = stbi_lrot(j-&gt;code_buffer, n);</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; j-&gt;code_buffer = k &amp; ~stbi__bmask[n];</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; k &amp;= stbi__bmask[n];</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; j-&gt;code_bits -= n;</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keywordflow">return</span> k;</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;}</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_get_bit(stbi__jpeg *j)</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;{</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 1)</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; k = j-&gt;code_buffer;</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; j-&gt;code_buffer &lt;&lt;= 1;</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; --j-&gt;code_bits;</div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; <span class="keywordflow">return</span> k &amp; 0x80000000;</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;}</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="comment">// given a value that&#39;s at position X in the zigzag stream,</span></div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="comment">// where does it appear in the 8x8 matrix coded as row-major?</span></div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__jpeg_dezigzag[64 + 15] = {</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; 54, 47, 55, 62, 63,</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; <span class="comment">// let corrupt input sample past end</span></div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63};</div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="comment">// decode one 64-entry block--</span></div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block(stbi__jpeg *j, <span class="keywordtype">short</span> data[64],</div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160; stbi__huffman *hdc, stbi__huffman *hac,</div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; stbi__int16 *fac, <span class="keywordtype">int</span> b,</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; stbi__uint16 *dequant)</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;{</div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; <span class="keywordtype">int</span> diff, dc, k;</div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; <span class="keywordtype">int</span> t;</div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16)</div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; t = stbi__jpeg_huff_decode(j, hdc);</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="keywordflow">if</span> (t &lt; 0)</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="comment">// columns</span></div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 8; ++i,++d, ++v) {</div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; <span class="comment">// if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing</span></div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; <span class="keywordflow">if</span> (d[ 8]==0 &amp;&amp; d[16]==0 &amp;&amp; d[24]==0 &amp;&amp; d[32]==0</div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; &amp;&amp; d[40]==0 &amp;&amp; d[48]==0 &amp;&amp; d[56]==0) {</div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; <span class="comment">// no shortcut 0 seconds</span></div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; <span class="comment">// (1|2|3|4|5|6|7)==0 0 seconds</span></div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="comment">// all separate -0.047 seconds</span></div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; <span class="comment">// 1 &amp;&amp; 2|3 &amp;&amp; 4|5 &amp;&amp; 6|7: -0.047 seconds</span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <span class="keywordtype">int</span> dcterm = d[0] &lt;&lt; 2;</div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm;</div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56])</div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="comment">// constants scaled things up by 1&lt;&lt;12; let&#39;s bring them back</span></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; <span class="comment">// down, but keep 2 extra bits of precision</span></div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; x0 += 512; x1 += 512; x2 += 512; x3 += 512;</div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; v[ 0] = (x0+t3) &gt;&gt; 10;</div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; v[56] = (x0-t3) &gt;&gt; 10;</div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; v[ 8] = (x1+t2) &gt;&gt; 10;</div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; v[48] = (x1-t2) &gt;&gt; 10;</div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; v[16] = (x2+t1) &gt;&gt; 10;</div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; v[40] = (x2-t1) &gt;&gt; 10;</div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; v[24] = (x3+t0) &gt;&gt; 10;</div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; v[32] = (x3-t0) &gt;&gt; 10;</div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; }</div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; }</div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; for (i=0, v=val, o=out; i &lt; 8; ++i,v+=8,o+=out_stride) {</div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; <span class="comment">// no fast case since the first 1D IDCT spread components out</span></div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7])</div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="comment">// constants scaled things up by 1&lt;&lt;12, plus we had 1&lt;&lt;2 from first</span></div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="comment">// loop, plus horizontal and vertical each scale by sqrt(8) so together</span></div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="comment">// we&#39;ve got an extra 1&lt;&lt;3, so 1&lt;&lt;17 total we need to remove.</span></div>
-<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; <span class="comment">// so we want to round that, which means adding 0.5 * 1&lt;&lt;17,</span></div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; <span class="comment">// aka 65536. Also, we&#39;ll end up with -128 to 127 that we want</span></div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; <span class="comment">// to encode as 0..255 by adding 128, so we&#39;ll add that before the shift</span></div>
-<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; x0 += 65536 + (128&lt;&lt;17);</div>
-<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; x1 += 65536 + (128&lt;&lt;17);</div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; x2 += 65536 + (128&lt;&lt;17);</div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; x3 += 65536 + (128&lt;&lt;17);</div>
-<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; <span class="comment">// tried computing the shifts into temps, or&#39;ing the temps to see</span></div>
-<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="comment">// if any were out of range, but that was slower</span></div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; o[0] = stbi__clamp((x0+t3) &gt;&gt; 17);</div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; o[7] = stbi__clamp((x0-t3) &gt;&gt; 17);</div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; o[1] = stbi__clamp((x1+t2) &gt;&gt; 17);</div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; o[6] = stbi__clamp((x1-t2) &gt;&gt; 17);</div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; o[2] = stbi__clamp((x2+t1) &gt;&gt; 17);</div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; o[5] = stbi__clamp((x2-t1) &gt;&gt; 17);</div>
-<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; o[3] = stbi__clamp((x3+t0) &gt;&gt; 17);</div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; o[4] = stbi__clamp((x3-t0) &gt;&gt; 17);</div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; }</div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;}</div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;</div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;<span class="preprocessor"></span><span class="comment">// sse2 integer IDCT. not the fastest possible implementation but it</span></div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;<span class="comment">// produces bit-identical results to the generic C version so it&#39;s</span></div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<span class="comment">// fully &quot;transparent&quot;.</span></div>
-<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;{</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; <span class="comment">// This is constructed to match our regular (generic) integer IDCT exactly.</span></div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; __m128i row0, row1, row2, row3, row4, row5, row6, row7;</div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; __m128i tmp;</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="comment">// 0 all the ac values now so we can do it 32-bits at a time</span></div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; memset(data, 0, 64 * <span class="keyword">sizeof</span>(data[0]));</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; diff = t ? stbi__extend_receive(j, t) : 0;</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; dc = j-&gt;img_comp[b].dc_pred + diff;</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; j-&gt;img_comp[b].dc_pred = dc;</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; data[0] = (short)(dc * dequant[0]);</div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;</div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; <span class="comment">// decode AC components, see JPEG spec</span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; k = 1;</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> zig;</div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; <span class="keywordtype">int</span> c, r, s;</div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16)</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS) - 1);</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; r = fac[c];</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; <span class="keywordflow">if</span> (r) { <span class="comment">// fast-AC path</span></div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; k += (r &gt;&gt; 4) &amp; 15; <span class="comment">// run</span></div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; s = r &amp; 15; <span class="comment">// combined length</span></div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; j-&gt;code_bits -= s;</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <span class="comment">// decode into unzigzag&#39;d location</span></div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; data[zig] = (short)((r &gt;&gt; 8) * dequant[zig]);</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac);</div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0)</div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; s = rs &amp; 15;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; r = rs &gt;&gt; 4;</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="keywordflow">if</span> (rs != 0xf0)</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; <span class="keywordflow">break</span>; <span class="comment">// end block</span></div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; k += 16;</div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; k += r;</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; <span class="comment">// decode into unzigzag&#39;d location</span></div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]);</div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; }</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; }</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; } <span class="keywordflow">while</span> (k &lt; 64);</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;}</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, <span class="keywordtype">short</span> data[64],</div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; stbi__huffman *hdc, <span class="keywordtype">int</span> b)</div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;{</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; <span class="keywordtype">int</span> diff, dc;</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; <span class="keywordtype">int</span> t;</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160; <span class="keywordflow">if</span> (j-&gt;spec_end != 0)</div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t merge dc and ac&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16)</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; <span class="keywordflow">if</span> (j-&gt;succ_high == 0) {</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160; <span class="comment">// first scan for DC coefficient, must be first</span></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; memset(data, 0, 64 * <span class="keyword">sizeof</span>(data[0])); <span class="comment">// 0 all the ac values now</span></div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; t = stbi__jpeg_huff_decode(j, hdc);</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; diff = t ? stbi__extend_receive(j, t) : 0;</div>
<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; <span class="comment">// dot product constant: even elems=x, odd elems=y</span></div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="preprocessor"> #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y))</span></div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; <span class="comment">// out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)</span></div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160; <span class="comment">// out(1) = c1[even]*x + c1[odd]*y</span></div>
-<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;<span class="preprocessor"> #define dct_rot(out0,out1, x,y,c0,c1) \</span></div>
-<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="preprocessor"> __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \</span></div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;<span class="preprocessor"> __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \</span></div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="preprocessor"> __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \</span></div>
-<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;<span class="preprocessor"> __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \</span></div>
-<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;<span class="preprocessor"> __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \</span></div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="preprocessor"> __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)</span></div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160; <span class="comment">// out = in &lt;&lt; 12 (in 16-bit, out 32-bit)</span></div>
-<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;<span class="preprocessor"> #define dct_widen(out, in) \</span></div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;<span class="preprocessor"> __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="preprocessor"> __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)</span></div>
-<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; <span class="comment">// wide add</span></div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;<span class="preprocessor"> #define dct_wadd(out, a, b) \</span></div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="preprocessor"> __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \</span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;<span class="preprocessor"> __m128i out##_h = _mm_add_epi32(a##_h, b##_h)</span></div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="comment">// wide sub</span></div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;<span class="preprocessor"> #define dct_wsub(out, a, b) \</span></div>
-<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;<span class="preprocessor"> __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \</span></div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="preprocessor"> __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)</span></div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="comment">// butterfly a/b, add bias, then shift by &quot;s&quot; and pack</span></div>
-<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;<span class="preprocessor"> #define dct_bfly32o(out0, out1, a,b,bias,s) \</span></div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;<span class="preprocessor"> __m128i abiased_l = _mm_add_epi32(a##_l, bias); \</span></div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="preprocessor"> __m128i abiased_h = _mm_add_epi32(a##_h, bias); \</span></div>
-<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;<span class="preprocessor"> dct_wadd(sum, abiased, b); \</span></div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;<span class="preprocessor"> dct_wsub(dif, abiased, b); \</span></div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;<span class="preprocessor"> out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \</span></div>
-<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="preprocessor"> out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \</span></div>
-<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="comment">// 8-bit interleave step (for transposes)</span></div>
-<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;<span class="preprocessor"> #define dct_interleave8(a, b) \</span></div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;<span class="preprocessor"> tmp = a; \</span></div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;<span class="preprocessor"> a = _mm_unpacklo_epi8(a, b); \</span></div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;<span class="preprocessor"> b = _mm_unpackhi_epi8(tmp, b)</span></div>
-<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="comment">// 16-bit interleave step (for transposes)</span></div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;<span class="preprocessor"> #define dct_interleave16(a, b) \</span></div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;<span class="preprocessor"> tmp = a; \</span></div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="preprocessor"> a = _mm_unpacklo_epi16(a, b); \</span></div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="preprocessor"> b = _mm_unpackhi_epi16(tmp, b)</span></div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;<span class="preprocessor"> #define dct_pass(bias,shift) \</span></div>
-<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<span class="preprocessor"> </span><span class="comment">/* even part */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;<span class="preprocessor"> dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \</span></div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;<span class="preprocessor"> __m128i sum04 = _mm_add_epi16(row0, row4); \</span></div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;<span class="preprocessor"> __m128i dif04 = _mm_sub_epi16(row0, row4); \</span></div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;<span class="preprocessor"> dct_widen(t0e, sum04); \</span></div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;<span class="preprocessor"> dct_widen(t1e, dif04); \</span></div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;<span class="preprocessor"> dct_wadd(x0, t0e, t3e); \</span></div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;<span class="preprocessor"> dct_wsub(x3, t0e, t3e); \</span></div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;<span class="preprocessor"> dct_wadd(x1, t1e, t2e); \</span></div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;<span class="preprocessor"> dct_wsub(x2, t1e, t2e); \</span></div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;<span class="preprocessor"> </span><span class="comment">/* odd part */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;<span class="preprocessor"> dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \</span></div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;<span class="preprocessor"> dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \</span></div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;<span class="preprocessor"> __m128i sum17 = _mm_add_epi16(row1, row7); \</span></div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;<span class="preprocessor"> __m128i sum35 = _mm_add_epi16(row3, row5); \</span></div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;<span class="preprocessor"> dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \</span></div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;<span class="preprocessor"> dct_wadd(x4, y0o, y4o); \</span></div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;<span class="preprocessor"> dct_wadd(x5, y1o, y5o); \</span></div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;<span class="preprocessor"> dct_wadd(x6, y2o, y5o); \</span></div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;<span class="preprocessor"> dct_wadd(x7, y3o, y4o); \</span></div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;<span class="preprocessor"> dct_bfly32o(row0,row7, x0,x7,bias,shift); \</span></div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;<span class="preprocessor"> dct_bfly32o(row1,row6, x1,x6,bias,shift); \</span></div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;<span class="preprocessor"> dct_bfly32o(row2,row5, x2,x5,bias,shift); \</span></div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;<span class="preprocessor"> dct_bfly32o(row3,row4, x3,x4,bias,shift); \</span></div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160; __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f));</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f));</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));</div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f));</div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f));</div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f));</div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f));</div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;</div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; <span class="comment">// rounding biases in column/row passes, see stbi__idct_block for explanation.</span></div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; __m128i bias_0 = _mm_set1_epi32(512);</div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; __m128i bias_1 = _mm_set1_epi32(65536 + (128&lt;&lt;17));</div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;</div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="comment">// load</span></div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; row0 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 0*8));</div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; row1 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 1*8));</div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; row2 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 2*8));</div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; row3 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 3*8));</div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; row4 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 4*8));</div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; row5 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 5*8));</div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; row6 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 6*8));</div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; row7 = _mm_load_si128((<span class="keyword">const</span> __m128i *) (data + 7*8));</div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; <span class="comment">// column pass</span></div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; dct_pass(bias_0, 10);</div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;</div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; {</div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; <span class="comment">// 16bit 8x8 transpose pass 1</span></div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; dct_interleave16(row0, row4);</div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; dct_interleave16(row1, row5);</div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; dct_interleave16(row2, row6);</div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; dct_interleave16(row3, row7);</div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;</div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; <span class="comment">// transpose pass 2</span></div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; dct_interleave16(row0, row2);</div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; dct_interleave16(row1, row3);</div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160; dct_interleave16(row4, row6);</div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; dct_interleave16(row5, row7);</div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;</div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; <span class="comment">// transpose pass 3</span></div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; dct_interleave16(row0, row1);</div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; dct_interleave16(row2, row3);</div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; dct_interleave16(row4, row5);</div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; dct_interleave16(row6, row7);</div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; }</div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;</div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="comment">// row pass</span></div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; dct_pass(bias_1, 17);</div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;</div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; {</div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="comment">// pack</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; __m128i p0 = _mm_packus_epi16(row0, row1); <span class="comment">// a0a1a2a3...a7b0b1b2b3...b7</span></div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; __m128i p1 = _mm_packus_epi16(row2, row3);</div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; __m128i p2 = _mm_packus_epi16(row4, row5);</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; __m128i p3 = _mm_packus_epi16(row6, row7);</div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;</div>
-<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; <span class="comment">// 8bit 8x8 transpose pass 1</span></div>
-<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; dct_interleave8(p0, p2); <span class="comment">// a0e0a1e1...</span></div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; dct_interleave8(p1, p3); <span class="comment">// c0g0c1g1...</span></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;</div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160; <span class="comment">// transpose pass 2</span></div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160; dct_interleave8(p0, p1); <span class="comment">// a0c0e0g0...</span></div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160; dct_interleave8(p2, p3); <span class="comment">// b0d0f0h0...</span></div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;</div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160; <span class="comment">// transpose pass 3</span></div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; dct_interleave8(p0, p2); <span class="comment">// a0b0c0d0...</span></div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160; dct_interleave8(p1, p3); <span class="comment">// a4b4c4d4...</span></div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;</div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; <span class="comment">// store</span></div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; _mm_storel_epi64((__m128i *) out, p0); out += out_stride;</div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride;</div>
-<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; _mm_storel_epi64((__m128i *) out, p2); out += out_stride;</div>
-<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160; _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride;</div>
-<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; _mm_storel_epi64((__m128i *) out, p1); out += out_stride;</div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride;</div>
-<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160; _mm_storel_epi64((__m128i *) out, p3); out += out_stride;</div>
-<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e));</div>
-<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; }</div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div>
-<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;<span class="preprocessor">#undef dct_const</span></div>
-<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_rot</span></div>
-<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_widen</span></div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wadd</span></div>
-<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wsub</span></div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_bfly32o</span></div>
-<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_interleave8</span></div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_interleave16</span></div>
-<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_pass</span></div>
-<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;<span class="preprocessor">#endif // STBI_SSE2</span></div>
-<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
-<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;<span class="comment">// NEON integer IDCT. should produce bit-identical</span></div>
-<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;<span class="comment">// results to the generic C version.</span></div>
-<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
-<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;{</div>
-<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;</div>
-<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;</div>
-<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));</div>
-<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));</div>
-<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f));</div>
-<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f));</div>
-<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));</div>
-<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160; int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));</div>
-<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));</div>
-<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));</div>
-<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f));</div>
-<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f));</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f));</div>
-<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160; int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f));</div>
-<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;</div>
-<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;<span class="preprocessor">#define dct_long_mul(out, inq, coeff) \</span></div>
-<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \</span></div>
-<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)</span></div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; dc = j-&gt;img_comp[b].dc_pred + diff;</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160; j-&gt;img_comp[b].dc_pred = dc;</div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; data[0] = (short)(dc &lt;&lt; j-&gt;succ_low);</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160; <span class="comment">// refinement scan for DC coefficient</span></div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160; data[0] += (<span class="keywordtype">short</span>)(1 &lt;&lt; j-&gt;succ_low);</div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; }</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;}</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="comment">// @OPTIMIZE: store non-zigzagged during the decode passes,</span></div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;<span class="comment">// and only de-zigzag when dequantizing</span></div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, <span class="keywordtype">short</span> data[64],</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; stbi__huffman *hac, stbi__int16 *fac)</div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;{</div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160; <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; <span class="keywordflow">if</span> (j-&gt;spec_start == 0)</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t merge dc and ac&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;</div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; <span class="keywordflow">if</span> (j-&gt;succ_high == 0) {</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keywordtype">int</span> shift = j-&gt;succ_low;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;</div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="keywordflow">if</span> (j-&gt;eob_run) {</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; --j-&gt;eob_run;</div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; }</div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; k = j-&gt;spec_start;</div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> zig;</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; <span class="keywordtype">int</span> c, r, s;</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160; <span class="keywordflow">if</span> (j-&gt;code_bits &lt; 16)</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; stbi__grow_buffer_unsafe(j);</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; c = (j-&gt;code_buffer &gt;&gt; (32 - FAST_BITS)) &amp; ((1 &lt;&lt; FAST_BITS) - 1);</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; r = fac[c];</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; <span class="keywordflow">if</span> (r) { <span class="comment">// fast-AC path</span></div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; k += (r &gt;&gt; 4) &amp; 15; <span class="comment">// run</span></div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; s = r &amp; 15; <span class="comment">// combined length</span></div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; j-&gt;code_buffer &lt;&lt;= s;</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; j-&gt;code_bits -= s;</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; data[zig] = (short)((r &gt;&gt; 8) &lt;&lt; shift);</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac);</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0)</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; s = rs &amp; 15;</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; r = rs &gt;&gt; 4;</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; <span class="keywordflow">if</span> (r &lt; 15) {</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; j-&gt;eob_run = (1 &lt;&lt; r);</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; <span class="keywordflow">if</span> (r)</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160; j-&gt;eob_run += stbi__jpeg_get_bits(j, r);</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; --j-&gt;eob_run;</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; }</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; k += 16;</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; k += r;</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; zig = stbi__jpeg_dezigzag[k++];</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; data[zig] = (short)(stbi__extend_receive(j, s) &lt;&lt; shift);</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; }</div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; }</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; } <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end);</div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; <span class="comment">// refinement scan for these AC coefficients</span></div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="keywordtype">short</span> bit = (short)(1 &lt;&lt; j-&gt;succ_low);</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; <span class="keywordflow">if</span> (j-&gt;eob_run) {</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; --j-&gt;eob_run;</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; <span class="keywordflow">for</span> (k = j-&gt;spec_start; k &lt;= j-&gt;spec_end; ++k) {</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <span class="keywordtype">short</span> *p = &amp;data[stbi__jpeg_dezigzag[k]];</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="keywordflow">if</span> (*p != 0)</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <span class="keywordflow">if</span> ((*p &amp; bit) == 0) {</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; <span class="keywordflow">if</span> (*p &gt; 0)</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; *p += bit;</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; *p -= bit;</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; }</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; }</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; k = j-&gt;spec_start;</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="keywordtype">int</span> r, s;</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keywordtype">int</span> rs = stbi__jpeg_huff_decode(j, hac); <span class="comment">// @OPTIMIZE see if we</span></div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; <span class="comment">// can use the fast</span></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="comment">// path here,</span></div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <span class="comment">// advance-by-r is so</span></div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160; <span class="comment">// slow, eh</span></div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="keywordflow">if</span> (rs &lt; 0)</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; s = rs &amp; 15;</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; r = rs &gt;&gt; 4;</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; <span class="keywordflow">if</span> (s == 0) {</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; <span class="keywordflow">if</span> (r &lt; 15) {</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; j-&gt;eob_run = (1 &lt;&lt; r) - 1;</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; <span class="keywordflow">if</span> (r)</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; j-&gt;eob_run += stbi__jpeg_get_bits(j, r);</div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; r = 64; <span class="comment">// force end of block</span></div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; <span class="comment">// r=15 s=0 should write 16 0s, so we just do</span></div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; <span class="comment">// a run of 15 0s and then write s (which is 0),</span></div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; <span class="comment">// so we don&#39;t have to do anything special here</span></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; }</div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; <span class="keywordflow">if</span> (s != 1)</div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; <span class="comment">// sign bit</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; s = bit;</div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; s = -bit;</div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160; }</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;</div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; <span class="comment">// advance by r</span></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end) {</div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; <span class="keywordtype">short</span> *p = &amp;data[stbi__jpeg_dezigzag[k++]];</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; <span class="keywordflow">if</span> (*p != 0) {</div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; <span class="keywordflow">if</span> (stbi__jpeg_get_bit(j))</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; <span class="keywordflow">if</span> ((*p &amp; bit) == 0) {</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; <span class="keywordflow">if</span> (*p &gt; 0)</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; *p += bit;</div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; *p -= bit;</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; }</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="keywordflow">if</span> (r == 0) {</div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; *p = (short)s;</div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; }</div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; --r;</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160; }</div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; }</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; } <span class="keywordflow">while</span> (k &lt;= j-&gt;spec_end);</div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; }</div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; }</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;}</div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;</div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;<span class="comment">// take a -128..127 value and stbi__clamp it and convert to 0..255</span></div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__clamp(<span class="keywordtype">int</span> x)</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;{</div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160; <span class="comment">// trick to use a single test to catch both cases</span></div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)x &gt; 255) {</div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; <span class="keywordflow">if</span> (x &lt; 0)</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; <span class="keywordflow">if</span> (x &gt; 255)</div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <span class="keywordflow">return</span> 255;</div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160; }</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)x;</div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;}</div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;</div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;<span class="preprocessor">#define stbi__f2f(x) ((int)(((x)*4096 + 0.5)))</span></div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__fsh(x) ((x) &lt;&lt; 12)</span></div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;<span class="comment">// derived from jidctint -- DCT_ISLOW</span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;<span class="preprocessor">#define STBI__IDCT_1D(s0, s1, s2, s3, s4, s5, s6, s7) \</span></div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;<span class="preprocessor"> int t0, t1, t2, t3, p1, p2, p3, p4, p5, x0, x1, x2, x3; \</span></div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;<span class="preprocessor"> p2 = s2; \</span></div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;<span class="preprocessor"> p3 = s6; \</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;<span class="preprocessor"> p1 = (p2 + p3) * stbi__f2f(0.5411961f); \</span></div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="preprocessor"> t2 = p1 + p3 * stbi__f2f(-1.847759065f); \</span></div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;<span class="preprocessor"> t3 = p1 + p2 * stbi__f2f(0.765366865f); \</span></div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;<span class="preprocessor"> p2 = s0; \</span></div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;<span class="preprocessor"> p3 = s4; \</span></div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;<span class="preprocessor"> t0 = stbi__fsh(p2 + p3); \</span></div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;<span class="preprocessor"> t1 = stbi__fsh(p2 - p3); \</span></div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;<span class="preprocessor"> x0 = t0 + t3; \</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;<span class="preprocessor"> x3 = t0 - t3; \</span></div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;<span class="preprocessor"> x1 = t1 + t2; \</span></div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;<span class="preprocessor"> x2 = t1 - t2; \</span></div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;<span class="preprocessor"> t0 = s7; \</span></div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;<span class="preprocessor"> t1 = s5; \</span></div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;<span class="preprocessor"> t2 = s3; \</span></div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;<span class="preprocessor"> t3 = s1; \</span></div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;<span class="preprocessor"> p3 = t0 + t2; \</span></div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;<span class="preprocessor"> p4 = t1 + t3; \</span></div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;<span class="preprocessor"> p1 = t0 + t3; \</span></div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;<span class="preprocessor"> p2 = t1 + t2; \</span></div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;<span class="preprocessor"> p5 = (p3 + p4) * stbi__f2f(1.175875602f); \</span></div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;<span class="preprocessor"> t0 = t0 * stbi__f2f(0.298631336f); \</span></div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;<span class="preprocessor"> t1 = t1 * stbi__f2f(2.053119869f); \</span></div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;<span class="preprocessor"> t2 = t2 * stbi__f2f(3.072711026f); \</span></div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;<span class="preprocessor"> t3 = t3 * stbi__f2f(1.501321110f); \</span></div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;<span class="preprocessor"> p1 = p5 + p1 * stbi__f2f(-0.899976223f); \</span></div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;<span class="preprocessor"> p2 = p5 + p2 * stbi__f2f(-2.562915447f); \</span></div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;<span class="preprocessor"> p3 = p3 * stbi__f2f(-1.961570560f); \</span></div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;<span class="preprocessor"> p4 = p4 * stbi__f2f(-0.390180644f); \</span></div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;<span class="preprocessor"> t3 += p1 + p4; \</span></div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;<span class="preprocessor"> t2 += p2 + p3; \</span></div>
+<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;<span class="preprocessor"> t1 += p2 + p4; \</span></div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;<span class="preprocessor"> t0 += p1 + p3;</span></div>
<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;<span class="preprocessor">#define dct_long_mac(out, acc, inq, coeff) \</span></div>
-<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \</span></div>
-<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)</span></div>
-<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;<span class="preprocessor">#define dct_widen(out, inq) \</span></div>
-<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \</span></div>
-<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)</span></div>
-<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;<span class="comment">// wide add</span></div>
-<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;<span class="preprocessor">#define dct_wadd(out, a, b) \</span></div>
-<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \</span></div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vaddq_s32(a##_h, b##_h)</span></div>
-<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;<span class="comment">// wide sub</span></div>
-<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;<span class="preprocessor">#define dct_wsub(out, a, b) \</span></div>
-<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \</span></div>
-<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vsubq_s32(a##_h, b##_h)</span></div>
-<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;<span class="comment">// butterfly a/b, then shift using &quot;shiftop&quot; by &quot;s&quot; and pack</span></div>
-<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;<span class="preprocessor">#define dct_bfly32o(out0,out1, a,b,shiftop,s) \</span></div>
-<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;<span class="preprocessor"> dct_wadd(sum, a, b); \</span></div>
-<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;<span class="preprocessor"> dct_wsub(dif, a, b); \</span></div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;<span class="preprocessor"> out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \</span></div>
-<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;<span class="preprocessor"> out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \</span></div>
-<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;<span class="preprocessor">#define dct_pass(shiftop, shift) \</span></div>
-<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;<span class="preprocessor"> </span><span class="comment">/* even part */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;<span class="preprocessor"> int16x8_t sum26 = vaddq_s16(row2, row6); \</span></div>
-<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;<span class="preprocessor"> dct_long_mul(p1e, sum26, rot0_0); \</span></div>
-<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;<span class="preprocessor"> dct_long_mac(t2e, p1e, row6, rot0_1); \</span></div>
-<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;<span class="preprocessor"> dct_long_mac(t3e, p1e, row2, rot0_2); \</span></div>
-<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;<span class="preprocessor"> int16x8_t sum04 = vaddq_s16(row0, row4); \</span></div>
-<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;<span class="preprocessor"> int16x8_t dif04 = vsubq_s16(row0, row4); \</span></div>
-<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;<span class="preprocessor"> dct_widen(t0e, sum04); \</span></div>
-<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;<span class="preprocessor"> dct_widen(t1e, dif04); \</span></div>
-<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;<span class="preprocessor"> dct_wadd(x0, t0e, t3e); \</span></div>
-<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;<span class="preprocessor"> dct_wsub(x3, t0e, t3e); \</span></div>
-<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;<span class="preprocessor"> dct_wadd(x1, t1e, t2e); \</span></div>
-<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;<span class="preprocessor"> dct_wsub(x2, t1e, t2e); \</span></div>
-<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;<span class="preprocessor"> </span><span class="comment">/* odd part */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;<span class="preprocessor"> int16x8_t sum15 = vaddq_s16(row1, row5); \</span></div>
-<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;<span class="preprocessor"> int16x8_t sum17 = vaddq_s16(row1, row7); \</span></div>
-<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;<span class="preprocessor"> int16x8_t sum35 = vaddq_s16(row3, row5); \</span></div>
-<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;<span class="preprocessor"> int16x8_t sum37 = vaddq_s16(row3, row7); \</span></div>
-<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;<span class="preprocessor"> int16x8_t sumodd = vaddq_s16(sum17, sum35); \</span></div>
-<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;<span class="preprocessor"> dct_long_mul(p5o, sumodd, rot1_0); \</span></div>
-<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;<span class="preprocessor"> dct_long_mac(p1o, p5o, sum17, rot1_1); \</span></div>
-<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;<span class="preprocessor"> dct_long_mac(p2o, p5o, sum35, rot1_2); \</span></div>
-<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;<span class="preprocessor"> dct_long_mul(p3o, sum37, rot2_0); \</span></div>
-<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;<span class="preprocessor"> dct_long_mul(p4o, sum15, rot2_1); \</span></div>
-<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;<span class="preprocessor"> dct_wadd(sump13o, p1o, p3o); \</span></div>
-<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;<span class="preprocessor"> dct_wadd(sump24o, p2o, p4o); \</span></div>
-<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;<span class="preprocessor"> dct_wadd(sump23o, p2o, p3o); \</span></div>
-<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;<span class="preprocessor"> dct_wadd(sump14o, p1o, p4o); \</span></div>
-<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;<span class="preprocessor"> dct_long_mac(x4, sump13o, row7, rot3_0); \</span></div>
-<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;<span class="preprocessor"> dct_long_mac(x5, sump24o, row5, rot3_1); \</span></div>
-<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;<span class="preprocessor"> dct_long_mac(x6, sump23o, row3, rot3_2); \</span></div>
-<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;<span class="preprocessor"> dct_long_mac(x7, sump14o, row1, rot3_3); \</span></div>
-<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;<span class="preprocessor"> dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \</span></div>
-<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;<span class="preprocessor"> dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \</span></div>
-<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;<span class="preprocessor"> dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \</span></div>
-<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;<span class="preprocessor"> dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \</span></div>
-<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="comment">// load</span></div>
-<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; row0 = vld1q_s16(data + 0*8);</div>
-<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; row1 = vld1q_s16(data + 1*8);</div>
-<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; row2 = vld1q_s16(data + 2*8);</div>
-<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; row3 = vld1q_s16(data + 3*8);</div>
-<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; row4 = vld1q_s16(data + 4*8);</div>
-<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; row5 = vld1q_s16(data + 5*8);</div>
-<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; row6 = vld1q_s16(data + 6*8);</div>
-<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; row7 = vld1q_s16(data + 7*8);</div>
-<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;</div>
-<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; <span class="comment">// add DC bias</span></div>
-<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));</div>
-<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;</div>
-<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; <span class="comment">// column pass</span></div>
-<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; dct_pass(vrshrn_n_s32, 10);</div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;</div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; <span class="comment">// 16bit 8x8 transpose</span></div>
-<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; {</div>
-<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;<span class="comment">// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.</span></div>
-<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;<span class="comment">// whether compilers actually get this is another story, sadly.</span></div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;<span class="preprocessor">#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; }</span></div>
-<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); }</span></div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); }</span></div>
-<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; <span class="comment">// pass 1</span></div>
-<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; dct_trn16(row0, row1); <span class="comment">// a0b0a2b2a4b4a6b6</span></div>
-<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; dct_trn16(row2, row3);</div>
-<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160; dct_trn16(row4, row5);</div>
-<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; dct_trn16(row6, row7);</div>
-<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;</div>
-<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160; <span class="comment">// pass 2</span></div>
-<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; dct_trn32(row0, row2); <span class="comment">// a0b0c0d0a4b4c4d4</span></div>
-<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160; dct_trn32(row1, row3);</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; dct_trn32(row4, row6);</div>
-<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; dct_trn32(row5, row7);</div>
-<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;</div>
-<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160; <span class="comment">// pass 3</span></div>
-<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; dct_trn64(row0, row4); <span class="comment">// a0b0c0d0e0f0g0h0</span></div>
-<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160; dct_trn64(row1, row5);</div>
-<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; dct_trn64(row2, row6);</div>
-<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; dct_trn64(row3, row7);</div>
-<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;</div>
-<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;<span class="preprocessor">#undef dct_trn16</span></div>
-<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn32</span></div>
-<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn64</span></div>
-<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;<span class="preprocessor"></span> }</div>
-<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;</div>
-<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; <span class="comment">// row pass</span></div>
-<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; <span class="comment">// vrshrn_n_s32 only supports shifts up to 16, we need</span></div>
-<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160; <span class="comment">// 17. so do a non-rounding shift of 16 first then follow</span></div>
-<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160; <span class="comment">// up with a rounding shift by 1.</span></div>
-<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160; dct_pass(vshrn_n_s32, 16);</div>
-<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;</div>
-<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; {</div>
-<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; <span class="comment">// pack and round</span></div>
-<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160; uint8x8_t p0 = vqrshrun_n_s16(row0, 1);</div>
-<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160; uint8x8_t p1 = vqrshrun_n_s16(row1, 1);</div>
-<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; uint8x8_t p2 = vqrshrun_n_s16(row2, 1);</div>
-<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; uint8x8_t p3 = vqrshrun_n_s16(row3, 1);</div>
-<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160; uint8x8_t p4 = vqrshrun_n_s16(row4, 1);</div>
-<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160; uint8x8_t p5 = vqrshrun_n_s16(row5, 1);</div>
-<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160; uint8x8_t p6 = vqrshrun_n_s16(row6, 1);</div>
-<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160; uint8x8_t p7 = vqrshrun_n_s16(row7, 1);</div>
-<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;</div>
-<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; <span class="comment">// again, these can translate into one instruction, but often don&#39;t.</span></div>
-<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;<span class="preprocessor">#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; }</span></div>
-<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); }</span></div>
-<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); }</span></div>
-<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160; <span class="comment">// sadly can&#39;t use interleaved stores here since we only write</span></div>
-<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160; <span class="comment">// 8 bytes to each scan line!</span></div>
-<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;</div>
-<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160; <span class="comment">// 8x8 8-bit transpose pass 1</span></div>
-<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160; dct_trn8_8(p0, p1);</div>
-<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160; dct_trn8_8(p2, p3);</div>
-<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; dct_trn8_8(p4, p5);</div>
-<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; dct_trn8_8(p6, p7);</div>
-<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;</div>
-<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; <span class="comment">// pass 2</span></div>
-<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; dct_trn8_16(p0, p2);</div>
-<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160; dct_trn8_16(p1, p3);</div>
-<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160; dct_trn8_16(p4, p6);</div>
-<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160; dct_trn8_16(p5, p7);</div>
-<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;</div>
-<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; <span class="comment">// pass 3</span></div>
-<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; dct_trn8_32(p0, p4);</div>
-<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160; dct_trn8_32(p1, p5);</div>
-<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; dct_trn8_32(p2, p6);</div>
-<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; dct_trn8_32(p3, p7);</div>
-<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;</div>
-<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160; <span class="comment">// store</span></div>
-<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; vst1_u8(out, p0); out += out_stride;</div>
-<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160; vst1_u8(out, p1); out += out_stride;</div>
-<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; vst1_u8(out, p2); out += out_stride;</div>
-<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; vst1_u8(out, p3); out += out_stride;</div>
-<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; vst1_u8(out, p4); out += out_stride;</div>
-<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; vst1_u8(out, p5); out += out_stride;</div>
-<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; vst1_u8(out, p6); out += out_stride;</div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; vst1_u8(out, p7);</div>
-<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;</div>
-<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;<span class="preprocessor">#undef dct_trn8_8</span></div>
-<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn8_16</span></div>
-<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn8_32</span></div>
-<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;<span class="preprocessor"></span> }</div>
-<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;</div>
-<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;<span class="preprocessor">#undef dct_long_mul</span></div>
-<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_long_mac</span></div>
-<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_widen</span></div>
-<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wadd</span></div>
-<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wsub</span></div>
-<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_bfly32o</span></div>
-<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_pass</span></div>
-<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;</div>
-<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;<span class="preprocessor">#endif // STBI_NEON</span></div>
-<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;<span class="preprocessor">#define STBI__MARKER_none 0xff</span></div>
-<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;<span class="preprocessor"></span><span class="comment">// if there&#39;s a pending marker from the entropy stream, return that</span></div>
-<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;<span class="comment">// otherwise, fetch from the stream and get a marker. if there&#39;s no</span></div>
-<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;<span class="comment">// marker, return 0xff, which is never a valid marker value</span></div>
-<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__get_marker(stbi__jpeg *j)</div>
-<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;{</div>
-<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> x;</div>
-<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160; <span class="keywordflow">if</span> (j-&gt;marker != STBI__MARKER_none) { x = j-&gt;marker; j-&gt;marker = STBI__MARKER_none; <span class="keywordflow">return</span> x; }</div>
-<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160; x = stbi__get8(j-&gt;s);</div>
-<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; <span class="keywordflow">if</span> (x != 0xff) <span class="keywordflow">return</span> STBI__MARKER_none;</div>
-<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; <span class="keywordflow">while</span> (x == 0xff)</div>
-<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; x = stbi__get8(j-&gt;s); <span class="comment">// consume repeated 0xff fill bytes</span></div>
-<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160; <span class="keywordflow">return</span> x;</div>
-<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;}</div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_block(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
+<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;{</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160; <span class="keywordtype">int</span> i, val[64], *v = val;</div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *o;</div>
+<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160; <span class="keywordtype">short</span> *d = data;</div>
+<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160; <span class="comment">// columns</span></div>
+<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 8; ++i, ++d, ++v) {</div>
+<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160; <span class="comment">// if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing</span></div>
+<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160; <span class="keywordflow">if</span> (d[8] == 0 &amp;&amp; d[16] == 0 &amp;&amp; d[24] == 0 &amp;&amp; d[32] == 0 &amp;&amp; d[40] == 0 &amp;&amp;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; d[48] == 0 &amp;&amp; d[56] == 0) {</div>
+<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; <span class="comment">// no shortcut 0 seconds</span></div>
+<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; <span class="comment">// (1|2|3|4|5|6|7)==0 0 seconds</span></div>
+<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; <span class="comment">// all separate -0.047 seconds</span></div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; <span class="comment">// 1 &amp;&amp; 2|3 &amp;&amp; 4|5 &amp;&amp; 6|7: -0.047 seconds</span></div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; <span class="keywordtype">int</span> dcterm = d[0] &lt;&lt; 2;</div>
+<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160; v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] =</div>
+<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; dcterm;</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160; STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56])</div>
+<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160; <span class="comment">// constants scaled things up by 1&lt;&lt;12; let&#39;s bring them back</span></div>
+<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160; <span class="comment">// down, but keep 2 extra bits of precision</span></div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; x0 += 512;</div>
+<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; x1 += 512;</div>
+<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160; x2 += 512;</div>
+<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160; x3 += 512;</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160; v[0] = (x0 + t3) &gt;&gt; 10;</div>
+<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160; v[56] = (x0 - t3) &gt;&gt; 10;</div>
+<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; v[8] = (x1 + t2) &gt;&gt; 10;</div>
+<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; v[48] = (x1 - t2) &gt;&gt; 10;</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; v[16] = (x2 + t1) &gt;&gt; 10;</div>
+<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160; v[40] = (x2 - t1) &gt;&gt; 10;</div>
+<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; v[24] = (x3 + t0) &gt;&gt; 10;</div>
+<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160; v[32] = (x3 - t0) &gt;&gt; 10;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; }</div>
+<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160; }</div>
+<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;</div>
+<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; for (i = 0, v = val, o = out; i &lt; 8; ++i, v += 8, o += out_stride) {</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160; <span class="comment">// no fast case since the first 1D IDCT spread components out</span></div>
+<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160; STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7])</div>
+<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160; <span class="comment">// constants scaled things up by 1&lt;&lt;12, plus we had 1&lt;&lt;2 from first</span></div>
+<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; <span class="comment">// loop, plus horizontal and vertical each scale by sqrt(8) so together</span></div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; <span class="comment">// we&#39;ve got an extra 1&lt;&lt;3, so 1&lt;&lt;17 total we need to remove.</span></div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160; <span class="comment">// so we want to round that, which means adding 0.5 * 1&lt;&lt;17,</span></div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; <span class="comment">// aka 65536. Also, we&#39;ll end up with -128 to 127 that we want</span></div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; <span class="comment">// to encode as 0..255 by adding 128, so we&#39;ll add that before the shift</span></div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; x0 += 65536 + (128 &lt;&lt; 17);</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160; x1 += 65536 + (128 &lt;&lt; 17);</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; x2 += 65536 + (128 &lt;&lt; 17);</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160; x3 += 65536 + (128 &lt;&lt; 17);</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; <span class="comment">// tried computing the shifts into temps, or&#39;ing the temps to see</span></div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160; <span class="comment">// if any were out of range, but that was slower</span></div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160; o[0] = stbi__clamp((x0 + t3) &gt;&gt; 17);</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; o[7] = stbi__clamp((x0 - t3) &gt;&gt; 17);</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160; o[1] = stbi__clamp((x1 + t2) &gt;&gt; 17);</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; o[6] = stbi__clamp((x1 - t2) &gt;&gt; 17);</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160; o[2] = stbi__clamp((x2 + t1) &gt;&gt; 17);</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160; o[5] = stbi__clamp((x2 - t1) &gt;&gt; 17);</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; o[3] = stbi__clamp((x3 + t0) &gt;&gt; 17);</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; o[4] = stbi__clamp((x3 - t0) &gt;&gt; 17);</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; }</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;}</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;</div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;<span class="preprocessor"></span><span class="comment">// sse2 integer IDCT. not the fastest possible implementation but it</span></div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;<span class="comment">// produces bit-identical results to the generic C version so it&#39;s</span></div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;<span class="comment">// fully &quot;transparent&quot;.</span></div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;{</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; <span class="comment">// This is constructed to match our regular (generic) integer IDCT exactly.</span></div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; __m128i row0, row1, row2, row3, row4, row5, row6, row7;</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; __m128i tmp;</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;<span class="comment">// dot product constant: even elems=x, odd elems=y</span></div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;<span class="preprocessor">#define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y))</span></div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;<span class="comment">// out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)</span></div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;<span class="comment">// out(1) = c1[even]*x + c1[odd]*y</span></div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;<span class="preprocessor">#define dct_rot(out0, out1, x, y, c0, c1) \</span></div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;<span class="preprocessor"> __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \</span></div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;<span class="preprocessor"> __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \</span></div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;<span class="preprocessor"> __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \</span></div>
+<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;<span class="preprocessor"> __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \</span></div>
+<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;<span class="preprocessor"> __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \</span></div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;<span class="preprocessor"> __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)</span></div>
+<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;<span class="comment">// out = in &lt;&lt; 12 (in 16-bit, out 32-bit)</span></div>
+<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;<span class="preprocessor">#define dct_widen(out, in) \</span></div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;<span class="preprocessor"> __m128i out##_l = \</span></div>
+<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;<span class="preprocessor"> _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \</span></div>
+<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;<span class="preprocessor"> __m128i out##_h = \</span></div>
+<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;<span class="preprocessor"> _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)</span></div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;<span class="comment">// wide add</span></div>
+<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;<span class="preprocessor">#define dct_wadd(out, a, b) \</span></div>
+<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160;<span class="preprocessor"> __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \</span></div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;<span class="preprocessor"> __m128i out##_h = _mm_add_epi32(a##_h, b##_h)</span></div>
+<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160;<span class="comment">// wide sub</span></div>
+<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;<span class="preprocessor">#define dct_wsub(out, a, b) \</span></div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;<span class="preprocessor"> __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \</span></div>
+<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;<span class="preprocessor"> __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)</span></div>
+<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;<span class="comment">// butterfly a/b, add bias, then shift by &quot;s&quot; and pack</span></div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;<span class="preprocessor">#define dct_bfly32o(out0, out1, a, b, bias, s) \</span></div>
+<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;<span class="preprocessor"> __m128i abiased_l = _mm_add_epi32(a##_l, bias); \</span></div>
+<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;<span class="preprocessor"> __m128i abiased_h = _mm_add_epi32(a##_h, bias); \</span></div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;<span class="preprocessor"> dct_wadd(sum, abiased, b); \</span></div>
+<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;<span class="preprocessor"> dct_wsub(dif, abiased, b); \</span></div>
+<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;<span class="preprocessor"> out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), \</span></div>
+<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;<span class="preprocessor"> _mm_srai_epi32(sum_h, s)); \</span></div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;<span class="preprocessor"> out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), \</span></div>
+<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;<span class="preprocessor"> _mm_srai_epi32(dif_h, s)); \</span></div>
+<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;<span class="comment">// 8-bit interleave step (for transposes)</span></div>
+<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;<span class="preprocessor">#define dct_interleave8(a, b) \</span></div>
+<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;<span class="preprocessor"> tmp = a; \</span></div>
+<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;<span class="preprocessor"> a = _mm_unpacklo_epi8(a, b); \</span></div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;<span class="preprocessor"> b = _mm_unpackhi_epi8(tmp, b)</span></div>
+<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;<span class="comment">// 16-bit interleave step (for transposes)</span></div>
+<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;<span class="preprocessor">#define dct_interleave16(a, b) \</span></div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;<span class="preprocessor"> tmp = a; \</span></div>
+<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;<span class="preprocessor"> a = _mm_unpacklo_epi16(a, b); \</span></div>
+<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;<span class="preprocessor"> b = _mm_unpackhi_epi16(tmp, b)</span></div>
+<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;<span class="preprocessor">#define dct_pass(bias, shift) \</span></div>
+<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;<span class="preprocessor"> </span><span class="comment">/* even part */</span><span class="preprocessor"> \</span></div>
+<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160;<span class="preprocessor"> dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \</span></div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;<span class="preprocessor"> __m128i sum04 = _mm_add_epi16(row0, row4); \</span></div>
+<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;<span class="preprocessor"> __m128i dif04 = _mm_sub_epi16(row0, row4); \</span></div>
+<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;<span class="preprocessor"> dct_widen(t0e, sum04); \</span></div>
+<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;<span class="preprocessor"> dct_widen(t1e, dif04); \</span></div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;<span class="preprocessor"> dct_wadd(x0, t0e, t3e); \</span></div>
+<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;<span class="preprocessor"> dct_wsub(x3, t0e, t3e); \</span></div>
+<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;<span class="preprocessor"> dct_wadd(x1, t1e, t2e); \</span></div>
+<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;<span class="preprocessor"> dct_wsub(x2, t1e, t2e); \</span></div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;<span class="preprocessor"> </span><span class="comment">/* odd part */</span><span class="preprocessor"> \</span></div>
+<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;<span class="preprocessor"> dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \</span></div>
+<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160;<span class="preprocessor"> dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \</span></div>
+<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160;<span class="preprocessor"> __m128i sum17 = _mm_add_epi16(row1, row7); \</span></div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;<span class="preprocessor"> __m128i sum35 = _mm_add_epi16(row3, row5); \</span></div>
+<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;<span class="preprocessor"> dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \</span></div>
+<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160;<span class="preprocessor"> dct_wadd(x4, y0o, y4o); \</span></div>
+<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;<span class="preprocessor"> dct_wadd(x5, y1o, y5o); \</span></div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;<span class="preprocessor"> dct_wadd(x6, y2o, y5o); \</span></div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;<span class="preprocessor"> dct_wadd(x7, y3o, y4o); \</span></div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;<span class="preprocessor"> dct_bfly32o(row0, row7, x0, x7, bias, shift); \</span></div>
+<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;<span class="preprocessor"> dct_bfly32o(row1, row6, x1, x6, bias, shift); \</span></div>
+<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;<span class="preprocessor"> dct_bfly32o(row2, row5, x2, x5, bias, shift); \</span></div>
+<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;<span class="preprocessor"> dct_bfly32o(row3, row4, x3, x4, bias, shift); \</span></div>
+<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; __m128i rot0_0 =</div>
+<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160; dct_const(stbi__f2f(0.5411961f),</div>
+<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));</div>
+<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160; __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f),</div>
+<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; stbi__f2f(0.5411961f));</div>
+<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; __m128i rot1_0 =</div>
+<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f),</div>
+<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; stbi__f2f(1.175875602f));</div>
+<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; __m128i rot1_1 =</div>
+<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; dct_const(stbi__f2f(1.175875602f),</div>
+<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160; stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));</div>
+<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160; __m128i rot2_0 =</div>
+<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160; dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f),</div>
+<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160; stbi__f2f(-1.961570560f));</div>
+<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160; __m128i rot2_1 =</div>
+<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160; dct_const(stbi__f2f(-1.961570560f),</div>
+<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160; stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f));</div>
+<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160; __m128i rot3_0 =</div>
+<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f),</div>
+<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160; stbi__f2f(-0.390180644f));</div>
+<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; __m128i rot3_1 =</div>
+<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160; dct_const(stbi__f2f(-0.390180644f),</div>
+<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160; stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f));</div>
+<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;</div>
+<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160; <span class="comment">// rounding biases in column/row passes, see stbi__idct_block for</span></div>
+<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160; <span class="comment">// explanation.</span></div>
+<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160; __m128i bias_0 = _mm_set1_epi32(512);</div>
+<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160; __m128i bias_1 = _mm_set1_epi32(65536 + (128 &lt;&lt; 17));</div>
+<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;</div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; <span class="comment">// load</span></div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160; row0 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 0 * 8));</div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160; row1 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 1 * 8));</div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160; row2 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 2 * 8));</div>
+<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160; row3 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 3 * 8));</div>
+<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160; row4 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 4 * 8));</div>
+<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160; row5 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 5 * 8));</div>
+<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; row6 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 6 * 8));</div>
+<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; row7 = _mm_load_si128((<span class="keyword">const</span> __m128i *)(data + 7 * 8));</div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;</div>
+<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160; <span class="comment">// column pass</span></div>
+<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; dct_pass(bias_0, 10);</div>
<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;</div>
-<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160;<span class="comment">// in each scan, we&#39;ll have scan_n components, and the order</span></div>
-<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;<span class="comment">// of the components is specified by order[]</span></div>
-<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;<span class="preprocessor">#define STBI__RESTART(x) ((x) &gt;= 0xd0 &amp;&amp; (x) &lt;= 0xd7)</span></div>
-<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;<span class="comment">// after a restart interval, stbi__jpeg_reset the entropy decoder and</span></div>
-<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;<span class="comment">// the dc prediction</span></div>
-<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_reset(stbi__jpeg *j)</div>
-<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;{</div>
-<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; j-&gt;code_bits = 0;</div>
-<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160; j-&gt;code_buffer = 0;</div>
-<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; j-&gt;nomore = 0;</div>
-<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160; j-&gt;img_comp[0].dc_pred = j-&gt;img_comp[1].dc_pred = j-&gt;img_comp[2].dc_pred = j-&gt;img_comp[3].dc_pred = 0;</div>
-<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160; j-&gt;marker = STBI__MARKER_none;</div>
-<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160; j-&gt;todo = j-&gt;restart_interval ? j-&gt;restart_interval : 0x7fffffff;</div>
-<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; j-&gt;eob_run = 0;</div>
-<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; <span class="comment">// no more than 1&lt;&lt;31 MCUs if no restart_interal? that&#39;s plenty safe,</span></div>
-<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160; <span class="comment">// since we don&#39;t even allow 1&lt;&lt;30 pixels</span></div>
-<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;}</div>
-<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;</div>
-<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_entropy_coded_data(stbi__jpeg *z)</div>
-<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;{</div>
-<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160; stbi__jpeg_reset(z);</div>
-<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160; <span class="keywordflow">if</span> (!z-&gt;progressive) {</div>
-<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n == 1) {</div>
-<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160; <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; STBI_SIMD_ALIGN(<span class="keywordtype">short</span>, data[64]);</div>
-<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[0];</div>
-<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160; <span class="comment">// non-interleaved data, we just need to process one block at a time,</span></div>
-<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160; <span class="comment">// in trivial scanline order</span></div>
-<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160; <span class="comment">// number of blocks to do just depends on how many actual &quot;pixels&quot; this</span></div>
-<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160; <span class="comment">// component has, independent of interleaved MCU blocking and such</span></div>
-<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; h; ++j) {</div>
-<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w; ++i) {</div>
-<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
-<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block(z, data, z-&gt;huff_dc+z-&gt;img_comp[n].hd, z-&gt;huff_ac+ha, z-&gt;fast_ac[ha], n, z-&gt;dequant[z-&gt;img_comp[n].tq])) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; z-&gt;idct_block_kernel(z-&gt;img_comp[n].data+z-&gt;img_comp[n].w2*j*8+i*8, z-&gt;img_comp[n].w2, data);</div>
-<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; <span class="comment">// every data block is an MCU, so countdown the restart interval</span></div>
-<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
-<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24) stbi__grow_buffer_unsafe(z);</div>
-<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160; <span class="comment">// if it&#39;s NOT a restart, then just bail, so we get corrupt data</span></div>
-<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160; <span class="comment">// rather than no data</span></div>
-<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160; stbi__jpeg_reset(z);</div>
-<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160; }</div>
-<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; }</div>
-<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; }</div>
-<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// interleaved</span></div>
-<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; <span class="keywordtype">int</span> i,j,k,x,y;</div>
-<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160; STBI_SIMD_ALIGN(<span class="keywordtype">short</span>, data[64]);</div>
-<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; z-&gt;img_mcu_y; ++j) {</div>
-<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;img_mcu_x; ++i) {</div>
-<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; <span class="comment">// scan an interleaved mcu... process scan_n components in order</span></div>
-<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; z-&gt;scan_n; ++k) {</div>
-<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[k];</div>
-<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160; <span class="comment">// scan out an mcu&#39;s worth of this component; that&#39;s just determined</span></div>
-<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; <span class="comment">// by the basic H and V specified for the component</span></div>
-<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; <span class="keywordflow">for</span> (y=0; y &lt; z-&gt;img_comp[n].v; ++y) {</div>
-<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160; <span class="keywordflow">for</span> (x=0; x &lt; z-&gt;img_comp[n].h; ++x) {</div>
-<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160; <span class="keywordtype">int</span> x2 = (i*z-&gt;img_comp[n].h + x)*8;</div>
-<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160; <span class="keywordtype">int</span> y2 = (j*z-&gt;img_comp[n].v + y)*8;</div>
-<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
-<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block(z, data, z-&gt;huff_dc+z-&gt;img_comp[n].hd, z-&gt;huff_ac+ha, z-&gt;fast_ac[ha], n, z-&gt;dequant[z-&gt;img_comp[n].tq])) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160; z-&gt;idct_block_kernel(z-&gt;img_comp[n].data+z-&gt;img_comp[n].w2*y2+x2, z-&gt;img_comp[n].w2, data);</div>
-<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160; }</div>
-<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160; }</div>
-<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; }</div>
-<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160; <span class="comment">// after all interleaved components, that&#39;s an interleaved MCU,</span></div>
-<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; <span class="comment">// so now count down the restart interval</span></div>
-<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
-<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24) stbi__grow_buffer_unsafe(z);</div>
-<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160; stbi__jpeg_reset(z);</div>
-<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160; }</div>
-<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; }</div>
-<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; }</div>
-<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; }</div>
-<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n == 1) {</div>
-<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160; <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[0];</div>
-<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; <span class="comment">// non-interleaved data, we just need to process one block at a time,</span></div>
-<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160; <span class="comment">// in trivial scanline order</span></div>
-<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160; <span class="comment">// number of blocks to do just depends on how many actual &quot;pixels&quot; this</span></div>
-<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; <span class="comment">// component has, independent of interleaved MCU blocking and such</span></div>
-<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; h; ++j) {</div>
-<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w; ++i) {</div>
-<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; <span class="keywordtype">short</span> *data = z-&gt;img_comp[n].coeff + 64 * (i + j * z-&gt;img_comp[n].coeff_w);</div>
-<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start == 0) {</div>
-<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_dc(z, data, &amp;z-&gt;huff_dc[z-&gt;img_comp[n].hd], n))</div>
-<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
-<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_ac(z, data, &amp;z-&gt;huff_ac[ha], z-&gt;fast_ac[ha]))</div>
-<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160; }</div>
-<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160; <span class="comment">// every data block is an MCU, so countdown the restart interval</span></div>
-<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
-<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24) stbi__grow_buffer_unsafe(z);</div>
-<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160; stbi__jpeg_reset(z);</div>
-<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160; }</div>
-<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160; }</div>
-<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160; }</div>
-<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// interleaved</span></div>
-<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160; <span class="keywordtype">int</span> i,j,k,x,y;</div>
-<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; z-&gt;img_mcu_y; ++j) {</div>
-<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;img_mcu_x; ++i) {</div>
-<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160; <span class="comment">// scan an interleaved mcu... process scan_n components in order</span></div>
-<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; z-&gt;scan_n; ++k) {</div>
-<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[k];</div>
-<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160; <span class="comment">// scan out an mcu&#39;s worth of this component; that&#39;s just determined</span></div>
-<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160; <span class="comment">// by the basic H and V specified for the component</span></div>
-<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160; <span class="keywordflow">for</span> (y=0; y &lt; z-&gt;img_comp[n].v; ++y) {</div>
-<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160; <span class="keywordflow">for</span> (x=0; x &lt; z-&gt;img_comp[n].h; ++x) {</div>
-<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160; <span class="keywordtype">int</span> x2 = (i*z-&gt;img_comp[n].h + x);</div>
-<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160; <span class="keywordtype">int</span> y2 = (j*z-&gt;img_comp[n].v + y);</div>
-<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160; <span class="keywordtype">short</span> *data = z-&gt;img_comp[n].coeff + 64 * (x2 + y2 * z-&gt;img_comp[n].coeff_w);</div>
-<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_dc(z, data, &amp;z-&gt;huff_dc[z-&gt;img_comp[n].hd], n))</div>
-<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160; }</div>
-<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160; }</div>
-<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160; }</div>
-<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160; <span class="comment">// after all interleaved components, that&#39;s an interleaved MCU,</span></div>
-<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160; <span class="comment">// so now count down the restart interval</span></div>
-<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
-<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24) stbi__grow_buffer_unsafe(z);</div>
-<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160; stbi__jpeg_reset(z);</div>
-<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160; }</div>
-<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160; }</div>
-<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160; }</div>
-<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160; }</div>
-<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160; }</div>
-<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;}</div>
-<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;</div>
-<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_dequantize(<span class="keywordtype">short</span> *data, stbi__uint16 *dequant)</div>
-<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;{</div>
-<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 64; ++i)</div>
-<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160; data[i] *= dequant[i];</div>
-<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;}</div>
-<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;</div>
-<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_finish(stbi__jpeg *z)</div>
-<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;{</div>
-<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
-<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160; <span class="comment">// dequantize and idct the data</span></div>
-<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160; <span class="keywordtype">int</span> i,j,n;</div>
-<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160; <span class="keywordflow">for</span> (n=0; n &lt; z-&gt;s-&gt;img_n; ++n) {</div>
-<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y+7) &gt;&gt; 3;</div>
-<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; h; ++j) {</div>
-<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w; ++i) {</div>
-<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160; <span class="keywordtype">short</span> *data = z-&gt;img_comp[n].coeff + 64 * (i + j * z-&gt;img_comp[n].coeff_w);</div>
-<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160; stbi__jpeg_dequantize(data, z-&gt;dequant[z-&gt;img_comp[n].tq]);</div>
-<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160; z-&gt;idct_block_kernel(z-&gt;img_comp[n].data+z-&gt;img_comp[n].w2*j*8+i*8, z-&gt;img_comp[n].w2, data);</div>
-<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160; }</div>
-<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160; }</div>
-<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160; }</div>
-<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160; }</div>
-<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;}</div>
-<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;</div>
-<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_marker(stbi__jpeg *z, <span class="keywordtype">int</span> m)</div>
-<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;{</div>
-<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160; <span class="keywordtype">int</span> <a class="code" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587">L</a>;</div>
-<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160; <span class="keywordflow">switch</span> (m) {</div>
-<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160; <span class="keywordflow">case</span> STBI__MARKER_none: <span class="comment">// no marker found</span></div>
-<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;expected marker&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;</div>
-<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160; <span class="keywordflow">case</span> 0xDD: <span class="comment">// DRI - specify restart interval</span></div>
-<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(z-&gt;s) != 4) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DRI len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160; z-&gt;restart_interval = stbi__get16be(z-&gt;s);</div>
-<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; {</div>
+<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160; <span class="comment">// 16bit 8x8 transpose pass 1</span></div>
+<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160; dct_interleave16(row0, row4);</div>
+<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160; dct_interleave16(row1, row5);</div>
+<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160; dct_interleave16(row2, row6);</div>
+<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; dct_interleave16(row3, row7);</div>
+<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;</div>
+<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160; <span class="comment">// transpose pass 2</span></div>
+<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; dct_interleave16(row0, row2);</div>
+<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160; dct_interleave16(row1, row3);</div>
+<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; dct_interleave16(row4, row6);</div>
+<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160; dct_interleave16(row5, row7);</div>
+<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;</div>
+<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160; <span class="comment">// transpose pass 3</span></div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; dct_interleave16(row0, row1);</div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; dct_interleave16(row2, row3);</div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160; dct_interleave16(row4, row5);</div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160; dct_interleave16(row6, row7);</div>
+<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160; }</div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;</div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160; <span class="comment">// row pass</span></div>
+<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160; dct_pass(bias_1, 17);</div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;</div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; {</div>
+<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160; <span class="comment">// pack</span></div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; __m128i p0 = _mm_packus_epi16(row0, row1); <span class="comment">// a0a1a2a3...a7b0b1b2b3...b7</span></div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; __m128i p1 = _mm_packus_epi16(row2, row3);</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160; __m128i p2 = _mm_packus_epi16(row4, row5);</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160; __m128i p3 = _mm_packus_epi16(row6, row7);</div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;</div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160; <span class="comment">// 8bit 8x8 transpose pass 1</span></div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; dct_interleave8(p0, p2); <span class="comment">// a0e0a1e1...</span></div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; dct_interleave8(p1, p3); <span class="comment">// c0g0c1g1...</span></div>
+<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;</div>
+<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160; <span class="comment">// transpose pass 2</span></div>
+<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160; dct_interleave8(p0, p1); <span class="comment">// a0c0e0g0...</span></div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160; dct_interleave8(p2, p3); <span class="comment">// b0d0f0h0...</span></div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;</div>
+<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; <span class="comment">// transpose pass 3</span></div>
+<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; dct_interleave8(p0, p2); <span class="comment">// a0b0c0d0...</span></div>
+<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160; dct_interleave8(p1, p3); <span class="comment">// a4b4c4d4...</span></div>
+<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;</div>
+<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160; <span class="comment">// store</span></div>
+<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160; _mm_storel_epi64((__m128i *)out, p0);</div>
+<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160; _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e));</div>
+<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; _mm_storel_epi64((__m128i *)out, p2);</div>
+<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160; _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e));</div>
+<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160; _mm_storel_epi64((__m128i *)out, p1);</div>
+<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160; _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e));</div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160; _mm_storel_epi64((__m128i *)out, p3);</div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160; _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e));</div>
+<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; }</div>
+<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;</div>
+<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;<span class="preprocessor">#undef dct_const</span></div>
+<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_rot</span></div>
+<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_widen</span></div>
+<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wadd</span></div>
+<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wsub</span></div>
+<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_bfly32o</span></div>
+<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_interleave8</span></div>
+<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_interleave16</span></div>
+<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_pass</span></div>
+<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;</div>
+<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;<span class="preprocessor">#endif // STBI_SSE2</span></div>
+<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
+<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;<span class="comment">// NEON integer IDCT. should produce bit-identical</span></div>
+<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;<span class="comment">// results to the generic C version.</span></div>
+<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__idct_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keywordtype">int</span> out_stride, <span class="keywordtype">short</span> data[64])</div>
+<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;{</div>
+<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;</div>
+<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;</div>
+<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160; int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));</div>
+<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160; int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));</div>
+<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; int16x4_t rot0_2 = vdup_n_s16(stbi__f2f(0.765366865f));</div>
+<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; int16x4_t rot1_0 = vdup_n_s16(stbi__f2f(1.175875602f));</div>
+<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160; int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));</div>
+<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160; int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));</div>
+<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));</div>
+<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));</div>
+<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; int16x4_t rot3_0 = vdup_n_s16(stbi__f2f(0.298631336f));</div>
+<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; int16x4_t rot3_1 = vdup_n_s16(stbi__f2f(2.053119869f));</div>
+<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; int16x4_t rot3_2 = vdup_n_s16(stbi__f2f(3.072711026f));</div>
+<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; int16x4_t rot3_3 = vdup_n_s16(stbi__f2f(1.501321110f));</div>
+<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;</div>
+<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;<span class="preprocessor">#define dct_long_mul(out, inq, coeff) \</span></div>
+<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \</span></div>
+<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)</span></div>
+<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;<span class="preprocessor">#define dct_long_mac(out, acc, inq, coeff) \</span></div>
+<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \</span></div>
+<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)</span></div>
+<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;<span class="preprocessor">#define dct_widen(out, inq) \</span></div>
+<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \</span></div>
+<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)</span></div>
+<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;<span class="comment">// wide add</span></div>
+<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;<span class="preprocessor">#define dct_wadd(out, a, b) \</span></div>
+<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \</span></div>
+<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vaddq_s32(a##_h, b##_h)</span></div>
+<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;<span class="comment">// wide sub</span></div>
+<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;<span class="preprocessor">#define dct_wsub(out, a, b) \</span></div>
+<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;<span class="preprocessor"> int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \</span></div>
+<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;<span class="preprocessor"> int32x4_t out##_h = vsubq_s32(a##_h, b##_h)</span></div>
+<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;<span class="comment">// butterfly a/b, then shift using &quot;shiftop&quot; by &quot;s&quot; and pack</span></div>
+<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;<span class="preprocessor">#define dct_bfly32o(out0, out1, a, b, shiftop, s) \</span></div>
+<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;<span class="preprocessor"> dct_wadd(sum, a, b); \</span></div>
+<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160;<span class="preprocessor"> dct_wsub(dif, a, b); \</span></div>
+<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;<span class="preprocessor"> out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \</span></div>
+<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;<span class="preprocessor"> out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \</span></div>
+<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;<span class="preprocessor">#define dct_pass(shiftop, shift) \</span></div>
+<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;<span class="preprocessor"> </span><span class="comment">/* even part */</span><span class="preprocessor"> \</span></div>
+<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;<span class="preprocessor"> int16x8_t sum26 = vaddq_s16(row2, row6); \</span></div>
+<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;<span class="preprocessor"> dct_long_mul(p1e, sum26, rot0_0); \</span></div>
+<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;<span class="preprocessor"> dct_long_mac(t2e, p1e, row6, rot0_1); \</span></div>
+<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;<span class="preprocessor"> dct_long_mac(t3e, p1e, row2, rot0_2); \</span></div>
+<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160;<span class="preprocessor"> int16x8_t sum04 = vaddq_s16(row0, row4); \</span></div>
+<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160;<span class="preprocessor"> int16x8_t dif04 = vsubq_s16(row0, row4); \</span></div>
+<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;<span class="preprocessor"> dct_widen(t0e, sum04); \</span></div>
+<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;<span class="preprocessor"> dct_widen(t1e, dif04); \</span></div>
+<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;<span class="preprocessor"> dct_wadd(x0, t0e, t3e); \</span></div>
+<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;<span class="preprocessor"> dct_wsub(x3, t0e, t3e); \</span></div>
+<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160;<span class="preprocessor"> dct_wadd(x1, t1e, t2e); \</span></div>
+<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;<span class="preprocessor"> dct_wsub(x2, t1e, t2e); \</span></div>
+<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;<span class="preprocessor"> </span><span class="comment">/* odd part */</span><span class="preprocessor"> \</span></div>
+<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;<span class="preprocessor"> int16x8_t sum15 = vaddq_s16(row1, row5); \</span></div>
+<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;<span class="preprocessor"> int16x8_t sum17 = vaddq_s16(row1, row7); \</span></div>
+<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;<span class="preprocessor"> int16x8_t sum35 = vaddq_s16(row3, row5); \</span></div>
+<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;<span class="preprocessor"> int16x8_t sum37 = vaddq_s16(row3, row7); \</span></div>
+<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;<span class="preprocessor"> int16x8_t sumodd = vaddq_s16(sum17, sum35); \</span></div>
+<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;<span class="preprocessor"> dct_long_mul(p5o, sumodd, rot1_0); \</span></div>
+<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;<span class="preprocessor"> dct_long_mac(p1o, p5o, sum17, rot1_1); \</span></div>
+<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;<span class="preprocessor"> dct_long_mac(p2o, p5o, sum35, rot1_2); \</span></div>
+<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;<span class="preprocessor"> dct_long_mul(p3o, sum37, rot2_0); \</span></div>
+<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160;<span class="preprocessor"> dct_long_mul(p4o, sum15, rot2_1); \</span></div>
+<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;<span class="preprocessor"> dct_wadd(sump13o, p1o, p3o); \</span></div>
+<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;<span class="preprocessor"> dct_wadd(sump24o, p2o, p4o); \</span></div>
+<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;<span class="preprocessor"> dct_wadd(sump23o, p2o, p3o); \</span></div>
+<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;<span class="preprocessor"> dct_wadd(sump14o, p1o, p4o); \</span></div>
+<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;<span class="preprocessor"> dct_long_mac(x4, sump13o, row7, rot3_0); \</span></div>
+<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;<span class="preprocessor"> dct_long_mac(x5, sump24o, row5, rot3_1); \</span></div>
+<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;<span class="preprocessor"> dct_long_mac(x6, sump23o, row3, rot3_2); \</span></div>
+<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;<span class="preprocessor"> dct_long_mac(x7, sump14o, row1, rot3_3); \</span></div>
+<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;<span class="preprocessor"> dct_bfly32o(row0, row7, x0, x7, shiftop, shift); \</span></div>
+<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;<span class="preprocessor"> dct_bfly32o(row1, row6, x1, x6, shiftop, shift); \</span></div>
+<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160;<span class="preprocessor"> dct_bfly32o(row2, row5, x2, x5, shiftop, shift); \</span></div>
+<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;<span class="preprocessor"> dct_bfly32o(row3, row4, x3, x4, shiftop, shift); \</span></div>
+<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160; <span class="comment">// load</span></div>
+<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160; row0 = vld1q_s16(data + 0 * 8);</div>
+<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160; row1 = vld1q_s16(data + 1 * 8);</div>
+<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160; row2 = vld1q_s16(data + 2 * 8);</div>
+<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160; row3 = vld1q_s16(data + 3 * 8);</div>
+<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160; row4 = vld1q_s16(data + 4 * 8);</div>
+<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160; row5 = vld1q_s16(data + 5 * 8);</div>
+<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160; row6 = vld1q_s16(data + 6 * 8);</div>
+<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160; row7 = vld1q_s16(data + 7 * 8);</div>
+<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;</div>
+<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160; <span class="comment">// add DC bias</span></div>
+<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160; row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));</div>
+<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;</div>
+<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160; <span class="comment">// column pass</span></div>
+<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160; dct_pass(vrshrn_n_s32, 10);</div>
<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;</div>
-<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160; <span class="keywordflow">case</span> 0xDB: <span class="comment">// DQT - define quantization table</span></div>
-<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160; L = stbi__get16be(z-&gt;s)-2;</div>
-<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160; <span class="keywordflow">while</span> (L &gt; 0) {</div>
-<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160; <span class="keywordtype">int</span> p = q &gt;&gt; 4, sixteen = (p != 0);</div>
-<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160; <span class="keywordtype">int</span> t = q &amp; 15,i;</div>
-<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160; <span class="keywordflow">if</span> (p != 0 &amp;&amp; p != 1) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DQT type&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160; <span class="keywordflow">if</span> (t &gt; 3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DQT table&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;</div>
-<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 64; ++i)</div>
-<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160; z-&gt;dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z-&gt;s) : stbi__get8(z-&gt;s));</div>
-<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160; L -= (sixteen ? 129 : 65);</div>
-<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160; }</div>
-<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160; <span class="keywordflow">return</span> L==0;</div>
-<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;</div>
-<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160; <span class="keywordflow">case</span> 0xC4: <span class="comment">// DHT - define huffman table</span></div>
-<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160; L = stbi__get16be(z-&gt;s)-2;</div>
-<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160; <span class="keywordflow">while</span> (L &gt; 0) {</div>
-<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *v;</div>
-<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160; <span class="keywordtype">int</span> sizes[16],i,n=0;</div>
-<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160; <span class="keywordtype">int</span> tc = q &gt;&gt; 4;</div>
-<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160; <span class="keywordtype">int</span> th = q &amp; 15;</div>
-<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160; <span class="keywordflow">if</span> (tc &gt; 1 || th &gt; 3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DHT header&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 16; ++i) {</div>
-<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160; sizes[i] = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160; n += sizes[i];</div>
-<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160; }</div>
-<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160; L -= 17;</div>
-<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160; <span class="keywordflow">if</span> (tc == 0) {</div>
-<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160; <span class="keywordflow">if</span> (!stbi__build_huffman(z-&gt;huff_dc+th, sizes)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160; v = z-&gt;huff_dc[th].values;</div>
-<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160; <span class="keywordflow">if</span> (!stbi__build_huffman(z-&gt;huff_ac+th, sizes)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160; v = z-&gt;huff_ac[th].values;</div>
-<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160; }</div>
-<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; n; ++i)</div>
-<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160; v[i] = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160; <span class="keywordflow">if</span> (tc != 0)</div>
-<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160; stbi__build_fast_ac(z-&gt;fast_ac[th], z-&gt;huff_ac + th);</div>
-<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160; L -= n;</div>
-<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160; }</div>
-<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160; <span class="keywordflow">return</span> L==0;</div>
-<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160; }</div>
-<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160;</div>
-<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160; <span class="comment">// check for comment block or APP blocks</span></div>
-<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160; <span class="keywordflow">if</span> ((m &gt;= 0xE0 &amp;&amp; m &lt;= 0xEF) || m == 0xFE) {</div>
-<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160; L = stbi__get16be(z-&gt;s);</div>
-<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160; <span class="keywordflow">if</span> (L &lt; 2) {</div>
-<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160; <span class="keywordflow">if</span> (m == 0xFE)</div>
-<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad COM len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad APP len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160; }</div>
-<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160; L -= 2;</div>
-<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;</div>
-<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160; <span class="keywordflow">if</span> (m == 0xE0 &amp;&amp; L &gt;= 5) { <span class="comment">// JFIF APP0 segment</span></div>
-<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tag[5] = {<span class="charliteral">&#39;J&#39;</span>,<span class="charliteral">&#39;F&#39;</span>,<span class="charliteral">&#39;I&#39;</span>,<span class="charliteral">&#39;F&#39;</span>,<span class="charliteral">&#39;\0&#39;</span>};</div>
-<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160; <span class="keywordtype">int</span> ok = 1;</div>
-<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 5; ++i)</div>
-<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160; <span class="keywordflow">if</span> (stbi__get8(z-&gt;s) != tag[i])</div>
-<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160; ok = 0;</div>
-<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160; L -= 5;</div>
-<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160; <span class="keywordflow">if</span> (ok)</div>
-<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160; z-&gt;jfif = 1;</div>
-<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m == 0xEE &amp;&amp; L &gt;= 12) { <span class="comment">// Adobe APP14 segment</span></div>
-<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tag[6] = {<span class="charliteral">&#39;A&#39;</span>,<span class="charliteral">&#39;d&#39;</span>,<span class="charliteral">&#39;o&#39;</span>,<span class="charliteral">&#39;b&#39;</span>,<span class="charliteral">&#39;e&#39;</span>,<span class="charliteral">&#39;\0&#39;</span>};</div>
-<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; <span class="keywordtype">int</span> ok = 1;</div>
-<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 6; ++i)</div>
-<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160; <span class="keywordflow">if</span> (stbi__get8(z-&gt;s) != tag[i])</div>
-<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160; ok = 0;</div>
-<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160; L -= 6;</div>
-<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160; <span class="keywordflow">if</span> (ok) {</div>
-<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160; stbi__get8(z-&gt;s); <span class="comment">// version</span></div>
-<div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160; stbi__get16be(z-&gt;s); <span class="comment">// flags0</span></div>
-<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160; stbi__get16be(z-&gt;s); <span class="comment">// flags1</span></div>
-<div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160; z-&gt;app14_color_transform = stbi__get8(z-&gt;s); <span class="comment">// color transform</span></div>
-<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160; L -= 6;</div>
-<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160; }</div>
-<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160; }</div>
-<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;</div>
-<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160; stbi__skip(z-&gt;s, L);</div>
-<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160; }</div>
-<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;</div>
-<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;unknown marker&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;}</div>
+<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160; <span class="comment">// 16bit 8x8 transpose</span></div>
+<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160; {</div>
+<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;<span class="comment">// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.</span></div>
+<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;<span class="comment">// whether compilers actually get this is another story, sadly.</span></div>
+<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;<span class="preprocessor">#define dct_trn16(x, y) \</span></div>
+<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;<span class="preprocessor"> int16x8x2_t t = vtrnq_s16(x, y); \</span></div>
+<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;<span class="preprocessor"> x = t.val[0]; \</span></div>
+<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;<span class="preprocessor"> y = t.val[1]; \</span></div>
+<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn32(x, y) \</span></div>
+<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;<span class="preprocessor"> int32x4x2_t t = \</span></div>
+<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;<span class="preprocessor"> vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); \</span></div>
+<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;<span class="preprocessor"> x = vreinterpretq_s16_s32(t.val[0]); \</span></div>
+<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160;<span class="preprocessor"> y = vreinterpretq_s16_s32(t.val[1]); \</span></div>
+<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn64(x, y) \</span></div>
+<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;<span class="preprocessor"> int16x8_t x0 = x; \</span></div>
+<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160;<span class="preprocessor"> int16x8_t y0 = y; \</span></div>
+<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160;<span class="preprocessor"> x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); \</span></div>
+<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;<span class="preprocessor"> y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); \</span></div>
+<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160; <span class="comment">// pass 1</span></div>
+<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160; dct_trn16(row0, row1); <span class="comment">// a0b0a2b2a4b4a6b6</span></div>
+<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160; dct_trn16(row2, row3);</div>
+<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160; dct_trn16(row4, row5);</div>
+<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160; dct_trn16(row6, row7);</div>
+<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;</div>
+<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160; <span class="comment">// pass 2</span></div>
+<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160; dct_trn32(row0, row2); <span class="comment">// a0b0c0d0a4b4c4d4</span></div>
+<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160; dct_trn32(row1, row3);</div>
+<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160; dct_trn32(row4, row6);</div>
+<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160; dct_trn32(row5, row7);</div>
+<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;</div>
+<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160; <span class="comment">// pass 3</span></div>
+<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160; dct_trn64(row0, row4); <span class="comment">// a0b0c0d0e0f0g0h0</span></div>
+<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160; dct_trn64(row1, row5);</div>
+<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160; dct_trn64(row2, row6);</div>
+<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160; dct_trn64(row3, row7);</div>
+<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;</div>
+<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;<span class="preprocessor">#undef dct_trn16</span></div>
+<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn32</span></div>
+<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn64</span></div>
+<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;<span class="preprocessor"></span> }</div>
+<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;</div>
+<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160; <span class="comment">// row pass</span></div>
+<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160; <span class="comment">// vrshrn_n_s32 only supports shifts up to 16, we need</span></div>
+<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160; <span class="comment">// 17. so do a non-rounding shift of 16 first then follow</span></div>
+<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160; <span class="comment">// up with a rounding shift by 1.</span></div>
+<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160; dct_pass(vshrn_n_s32, 16);</div>
+<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;</div>
+<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160; {</div>
+<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160; <span class="comment">// pack and round</span></div>
+<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160; uint8x8_t p0 = vqrshrun_n_s16(row0, 1);</div>
+<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160; uint8x8_t p1 = vqrshrun_n_s16(row1, 1);</div>
+<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160; uint8x8_t p2 = vqrshrun_n_s16(row2, 1);</div>
+<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160; uint8x8_t p3 = vqrshrun_n_s16(row3, 1);</div>
+<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160; uint8x8_t p4 = vqrshrun_n_s16(row4, 1);</div>
+<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160; uint8x8_t p5 = vqrshrun_n_s16(row5, 1);</div>
+<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160; uint8x8_t p6 = vqrshrun_n_s16(row6, 1);</div>
+<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160; uint8x8_t p7 = vqrshrun_n_s16(row7, 1);</div>
+<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;</div>
+<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160; <span class="comment">// again, these can translate into one instruction, but often don&#39;t.</span></div>
+<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;<span class="preprocessor">#define dct_trn8_8(x, y) \</span></div>
+<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160;<span class="preprocessor"> uint8x8x2_t t = vtrn_u8(x, y); \</span></div>
+<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;<span class="preprocessor"> x = t.val[0]; \</span></div>
+<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;<span class="preprocessor"> y = t.val[1]; \</span></div>
+<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn8_16(x, y) \</span></div>
+<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;<span class="preprocessor"> uint16x4x2_t t = \</span></div>
+<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160;<span class="preprocessor"> vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); \</span></div>
+<div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160;<span class="preprocessor"> x = vreinterpret_u8_u16(t.val[0]); \</span></div>
+<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;<span class="preprocessor"> y = vreinterpret_u8_u16(t.val[1]); \</span></div>
+<div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define dct_trn8_32(x, y) \</span></div>
+<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;<span class="preprocessor"> uint32x2x2_t t = \</span></div>
+<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;<span class="preprocessor"> vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); \</span></div>
+<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;<span class="preprocessor"> x = vreinterpret_u8_u32(t.val[0]); \</span></div>
+<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;<span class="preprocessor"> y = vreinterpret_u8_u32(t.val[1]); \</span></div>
+<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160; <span class="comment">// sadly can&#39;t use interleaved stores here since we only write</span></div>
+<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160; <span class="comment">// 8 bytes to each scan line!</span></div>
<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160;</div>
-<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;<span class="comment">// after we see SOS</span></div>
-<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_scan_header(stbi__jpeg *z)</div>
-<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;{</div>
-<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160; <span class="keywordtype">int</span> Ls = stbi__get16be(z-&gt;s);</div>
-<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160; z-&gt;scan_n = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n &lt; 1 || z-&gt;scan_n &gt; 4 || z-&gt;scan_n &gt; (<span class="keywordtype">int</span>) z-&gt;s-&gt;img_n) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS component count&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160; <span class="keywordflow">if</span> (Ls != 6+2*z-&gt;scan_n) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;scan_n; ++i) {</div>
-<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = stbi__get8(z-&gt;s), which;</div>
-<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160; <span class="keywordflow">for</span> (which = 0; which &lt; z-&gt;s-&gt;img_n; ++which)</div>
-<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[which].id == <span class="keywordtype">id</span>)</div>
-<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160; <span class="keywordflow">if</span> (which == z-&gt;s-&gt;img_n) <span class="keywordflow">return</span> 0; <span class="comment">// no match</span></div>
-<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160; z-&gt;img_comp[which].hd = q &gt;&gt; 4; <span class="keywordflow">if</span> (z-&gt;img_comp[which].hd &gt; 3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DC huff&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160; z-&gt;img_comp[which].ha = q &amp; 15; <span class="keywordflow">if</span> (z-&gt;img_comp[which].ha &gt; 3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad AC huff&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160; z-&gt;order[i] = which;</div>
-<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160; }</div>
-<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;</div>
-<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160; {</div>
-<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160; <span class="keywordtype">int</span> aa;</div>
-<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160; z-&gt;spec_start = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160; z-&gt;spec_end = stbi__get8(z-&gt;s); <span class="comment">// should be 63, but might be 0</span></div>
-<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160; aa = stbi__get8(z-&gt;s);</div>
-<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160; z-&gt;succ_high = (aa &gt;&gt; 4);</div>
-<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160; z-&gt;succ_low = (aa &amp; 15);</div>
-<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
-<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start &gt; 63 || z-&gt;spec_end &gt; 63 || z-&gt;spec_start &gt; z-&gt;spec_end || z-&gt;succ_high &gt; 13 || z-&gt;succ_low &gt; 13)</div>
-<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start != 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160; <span class="keywordflow">if</span> (z-&gt;succ_high != 0 || z-&gt;succ_low != 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160; z-&gt;spec_end = 63;</div>
-<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160; }</div>
-<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160; }</div>
-<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;</div>
-<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;}</div>
+<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160; <span class="comment">// 8x8 8-bit transpose pass 1</span></div>
+<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160; dct_trn8_8(p0, p1);</div>
+<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160; dct_trn8_8(p2, p3);</div>
+<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160; dct_trn8_8(p4, p5);</div>
+<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160; dct_trn8_8(p6, p7);</div>
+<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;</div>
+<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160; <span class="comment">// pass 2</span></div>
+<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160; dct_trn8_16(p0, p2);</div>
+<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160; dct_trn8_16(p1, p3);</div>
+<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160; dct_trn8_16(p4, p6);</div>
+<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160; dct_trn8_16(p5, p7);</div>
+<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;</div>
+<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160; <span class="comment">// pass 3</span></div>
+<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160; dct_trn8_32(p0, p4);</div>
+<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160; dct_trn8_32(p1, p5);</div>
+<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160; dct_trn8_32(p2, p6);</div>
+<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160; dct_trn8_32(p3, p7);</div>
+<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;</div>
+<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160; <span class="comment">// store</span></div>
+<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160; vst1_u8(out, p0);</div>
+<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160; vst1_u8(out, p1);</div>
+<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160; vst1_u8(out, p2);</div>
+<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160; vst1_u8(out, p3);</div>
+<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160; vst1_u8(out, p4);</div>
+<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160; vst1_u8(out, p5);</div>
+<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160; vst1_u8(out, p6);</div>
+<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160; out += out_stride;</div>
+<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160; vst1_u8(out, p7);</div>
+<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;</div>
+<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;<span class="preprocessor">#undef dct_trn8_8</span></div>
+<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn8_16</span></div>
+<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_trn8_32</span></div>
+<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;<span class="preprocessor"></span> }</div>
<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;</div>
-<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__free_jpeg_components(stbi__jpeg *z, <span class="keywordtype">int</span> ncomp, <span class="keywordtype">int</span> why)</div>
-<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;{</div>
-<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; ncomp; ++i) {</div>
-<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_data) {</div>
-<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160; STBI_FREE(z-&gt;img_comp[i].raw_data);</div>
-<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160; z-&gt;img_comp[i].raw_data = NULL;</div>
-<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160; z-&gt;img_comp[i].data = NULL;</div>
-<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160; }</div>
-<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_coeff) {</div>
-<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160; STBI_FREE(z-&gt;img_comp[i].raw_coeff);</div>
-<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160; z-&gt;img_comp[i].raw_coeff = 0;</div>
-<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160; z-&gt;img_comp[i].coeff = 0;</div>
-<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160; }</div>
-<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].linebuf) {</div>
-<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160; STBI_FREE(z-&gt;img_comp[i].linebuf);</div>
-<div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
-<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160; }</div>
-<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160; }</div>
-<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160; <span class="keywordflow">return</span> why;</div>
-<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;}</div>
-<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160;</div>
-<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_frame_header(stbi__jpeg *z, <span class="keywordtype">int</span> scan)</div>
-<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;{</div>
-<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160; stbi__context *s = z-&gt;s;</div>
-<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160; <span class="keywordtype">int</span> Lf,p,i,q, h_max=1,v_max=1,c;</div>
-<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160; Lf = stbi__get16be(s); <span class="keywordflow">if</span> (Lf &lt; 11) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOF len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>); <span class="comment">// JPEG</span></div>
-<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160; p = stbi__get8(s); <span class="keywordflow">if</span> (p != 8) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;only 8-bit&quot;</span>,<span class="stringliteral">&quot;JPEG format not supported: 8-bit only&quot;</span>); <span class="comment">// JPEG baseline</span></div>
-<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160; s-&gt;img_y = stbi__get16be(s); <span class="keywordflow">if</span> (s-&gt;img_y == 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no header height&quot;</span>, <span class="stringliteral">&quot;JPEG format not supported: delayed height&quot;</span>); <span class="comment">// Legal, but we don&#39;t handle it--but neither does IJG</span></div>
-<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160; s-&gt;img_x = stbi__get16be(s); <span class="keywordflow">if</span> (s-&gt;img_x == 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;0 width&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>); <span class="comment">// JPEG requires</span></div>
-<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160; c = stbi__get8(s);</div>
-<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160; <span class="keywordflow">if</span> (c != 3 &amp;&amp; c != 1 &amp;&amp; c != 4) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad component count&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160; s-&gt;img_n = c;</div>
-<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; c; ++i) {</div>
-<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160; z-&gt;img_comp[i].data = NULL;</div>
-<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
-<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160; }</div>
-<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;</div>
-<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160; <span class="keywordflow">if</span> (Lf != 8+3*s-&gt;img_n) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOF len&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;</div>
-<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160; z-&gt;rgb = 0;</div>
-<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; s-&gt;img_n; ++i) {</div>
-<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160; <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> rgb[3] = { <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;B&#39;</span> };</div>
-<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160; z-&gt;img_comp[i].id = stbi__get8(s);</div>
-<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_n == 3 &amp;&amp; z-&gt;img_comp[i].id == rgb[i])</div>
-<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160; ++z-&gt;rgb;</div>
-<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160; q = stbi__get8(s);</div>
-<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160; z-&gt;img_comp[i].h = (q &gt;&gt; 4); <span class="keywordflow">if</span> (!z-&gt;img_comp[i].h || z-&gt;img_comp[i].h &gt; 4) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad H&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160; z-&gt;img_comp[i].v = q &amp; 15; <span class="keywordflow">if</span> (!z-&gt;img_comp[i].v || z-&gt;img_comp[i].v &gt; 4) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad V&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160; z-&gt;img_comp[i].tq = stbi__get8(s); <span class="keywordflow">if</span> (z-&gt;img_comp[i].tq &gt; 3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad TQ&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160; }</div>
-<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;</div>
-<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160; <span class="keywordflow">if</span> (scan != STBI__SCAN_load) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;</div>
-<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(s-&gt;img_x, s-&gt;img_y, s-&gt;img_n, 0)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Image too large to decode&quot;</span>);</div>
-<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;</div>
-<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; s-&gt;img_n; ++i) {</div>
-<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].h &gt; h_max) h_max = z-&gt;img_comp[i].h;</div>
-<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].v &gt; v_max) v_max = z-&gt;img_comp[i].v;</div>
-<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160; }</div>
-<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;</div>
-<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160; <span class="comment">// compute interleaved mcu info</span></div>
-<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160; z-&gt;img_h_max = h_max;</div>
-<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160; z-&gt;img_v_max = v_max;</div>
-<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160; z-&gt;img_mcu_w = h_max * 8;</div>
-<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160; z-&gt;img_mcu_h = v_max * 8;</div>
-<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160; <span class="comment">// these sizes can&#39;t be more than 17 bits</span></div>
-<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160; z-&gt;img_mcu_x = (s-&gt;img_x + z-&gt;img_mcu_w-1) / z-&gt;img_mcu_w;</div>
-<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160; z-&gt;img_mcu_y = (s-&gt;img_y + z-&gt;img_mcu_h-1) / z-&gt;img_mcu_h;</div>
-<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;</div>
-<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; s-&gt;img_n; ++i) {</div>
-<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160; <span class="comment">// number of effective pixels (e.g. for non-interleaved MCU)</span></div>
-<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; z-&gt;img_comp[i].x = (s-&gt;img_x * z-&gt;img_comp[i].h + h_max-1) / h_max;</div>
-<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160; z-&gt;img_comp[i].y = (s-&gt;img_y * z-&gt;img_comp[i].v + v_max-1) / v_max;</div>
-<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160; <span class="comment">// to simplify generation, we&#39;ll allocate enough memory to decode</span></div>
-<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160; <span class="comment">// the bogus oversized data from using interleaved MCUs and their</span></div>
-<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160; <span class="comment">// big blocks (e.g. a 16x16 iMCU on an image of width 33); we won&#39;t</span></div>
-<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160; <span class="comment">// discard the extra data until colorspace conversion</span></div>
-<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160; <span class="comment">// img_mcu_x, img_mcu_y: &lt;=17 bits; comp[i].h and .v are &lt;=4 (checked earlier)</span></div>
-<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160; <span class="comment">// so these muls can&#39;t overflow with 32-bit ints (which we require)</span></div>
-<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160; z-&gt;img_comp[i].w2 = z-&gt;img_mcu_x * z-&gt;img_comp[i].h * 8;</div>
-<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160; z-&gt;img_comp[i].h2 = z-&gt;img_mcu_y * z-&gt;img_comp[i].v * 8;</div>
-<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160; z-&gt;img_comp[i].coeff = 0;</div>
-<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160; z-&gt;img_comp[i].raw_coeff = 0;</div>
-<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
-<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160; z-&gt;img_comp[i].raw_data = stbi__malloc_mad2(z-&gt;img_comp[i].w2, z-&gt;img_comp[i].h2, 15);</div>
-<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_data == NULL)</div>
-<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160; <span class="keywordflow">return</span> stbi__free_jpeg_components(z, i+1, stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>));</div>
-<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160; <span class="comment">// align blocks for idct using mmx/sse</span></div>
-<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160; z-&gt;img_comp[i].data = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>*) (((<span class="keywordtype">size_t</span>) z-&gt;img_comp[i].raw_data + 15) &amp; ~15);</div>
-<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
-<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160; <span class="comment">// w2, h2 are multiples of 8 (see above)</span></div>
-<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160; z-&gt;img_comp[i].coeff_w = z-&gt;img_comp[i].w2 / 8;</div>
-<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160; z-&gt;img_comp[i].coeff_h = z-&gt;img_comp[i].h2 / 8;</div>
-<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160; z-&gt;img_comp[i].raw_coeff = stbi__malloc_mad3(z-&gt;img_comp[i].w2, z-&gt;img_comp[i].h2, <span class="keyword">sizeof</span>(<span class="keywordtype">short</span>), 15);</div>
-<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_coeff == NULL)</div>
-<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160; <span class="keywordflow">return</span> stbi__free_jpeg_components(z, i+1, stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>));</div>
-<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160; z-&gt;img_comp[i].coeff = (<span class="keywordtype">short</span>*) (((<span class="keywordtype">size_t</span>) z-&gt;img_comp[i].raw_coeff + 15) &amp; ~15);</div>
-<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160; }</div>
-<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160; }</div>
-<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;</div>
-<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;}</div>
-<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;</div>
-<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;<span class="comment">// use comparisons since in some cases we handle more than one case (e.g. SOF)</span></div>
-<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;<span class="preprocessor">#define stbi__DNL(x) ((x) == 0xdc)</span></div>
-<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOI(x) ((x) == 0xd8)</span></div>
-<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__EOI(x) ((x) == 0xd9)</span></div>
-<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)</span></div>
-<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOS(x) ((x) == 0xda)</span></div>
-<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;<span class="preprocessor">#define stbi__SOF_progressive(x) ((x) == 0xc2)</span></div>
-<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__decode_jpeg_header(stbi__jpeg *z, <span class="keywordtype">int</span> scan)</div>
-<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;{</div>
-<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160; <span class="keywordtype">int</span> m;</div>
-<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160; z-&gt;jfif = 0;</div>
-<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160; z-&gt;app14_color_transform = -1; <span class="comment">// valid values are 0,1,2</span></div>
-<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160; z-&gt;marker = STBI__MARKER_none; <span class="comment">// initialize cached marker to empty</span></div>
-<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160; m = stbi__get_marker(z);</div>
-<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160; <span class="keywordflow">if</span> (!stbi__SOI(m)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no SOI&quot;</span>,<span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_type) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160; m = stbi__get_marker(z);</div>
-<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160; <span class="keywordflow">while</span> (!stbi__SOF(m)) {</div>
-<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160; <span class="keywordflow">if</span> (!stbi__process_marker(z,m)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160; m = stbi__get_marker(z);</div>
-<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160; <span class="keywordflow">while</span> (m == STBI__MARKER_none) {</div>
-<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160; <span class="comment">// some files have extra padding after their blocks, so ok, we&#39;ll scan</span></div>
-<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(z-&gt;s)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no SOF&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160; m = stbi__get_marker(z);</div>
-<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160; }</div>
-<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160; }</div>
-<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160; z-&gt;progressive = stbi__SOF_progressive(m);</div>
-<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160; <span class="keywordflow">if</span> (!stbi__process_frame_header(z, scan)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;}</div>
-<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;</div>
-<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160;<span class="comment">// decode image to YCbCr format</span></div>
-<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__decode_jpeg_image(stbi__jpeg *j)</div>
-<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160;{</div>
-<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160; <span class="keywordtype">int</span> m;</div>
-<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160; <span class="keywordflow">for</span> (m = 0; m &lt; 4; m++) {</div>
-<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160; j-&gt;img_comp[m].raw_data = NULL;</div>
-<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160; j-&gt;img_comp[m].raw_coeff = NULL;</div>
-<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160; }</div>
-<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160; j-&gt;restart_interval = 0;</div>
-<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160; m = stbi__get_marker(j);</div>
-<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160; <span class="keywordflow">while</span> (!stbi__EOI(m)) {</div>
-<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160; <span class="keywordflow">if</span> (stbi__SOS(m)) {</div>
-<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160; <span class="keywordflow">if</span> (!stbi__process_scan_header(j)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_entropy_coded_data(j)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160; <span class="keywordflow">if</span> (j-&gt;marker == STBI__MARKER_none ) {</div>
-<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160; <span class="comment">// handle 0s at the end of image data from IP Kamera 9060</span></div>
-<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(j-&gt;s)) {</div>
-<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160; <span class="keywordtype">int</span> x = stbi__get8(j-&gt;s);</div>
-<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160; <span class="keywordflow">if</span> (x == 255) {</div>
-<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160; j-&gt;marker = stbi__get8(j-&gt;s);</div>
-<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160; }</div>
-<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160; }</div>
-<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160; <span class="comment">// if we reach eof without hitting a marker, stbi__get_marker() below will fail and we&#39;ll eventually return 0</span></div>
-<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160; }</div>
-<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stbi__DNL(m)) {</div>
-<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160; <span class="keywordtype">int</span> Ld = stbi__get16be(j-&gt;s);</div>
-<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160; stbi__uint32 NL = stbi__get16be(j-&gt;s);</div>
-<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160; <span class="keywordflow">if</span> (Ld != 4) stbi__err(<span class="stringliteral">&quot;bad DNL len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160; <span class="keywordflow">if</span> (NL != j-&gt;s-&gt;img_y) stbi__err(<span class="stringliteral">&quot;bad DNL height&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
-<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160; <span class="keywordflow">if</span> (!stbi__process_marker(j, m)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160; }</div>
-<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160; m = stbi__get_marker(j);</div>
-<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160; }</div>
-<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160; <span class="keywordflow">if</span> (j-&gt;progressive)</div>
-<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160; stbi__jpeg_finish(j);</div>
-<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;}</div>
-<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;</div>
-<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;<span class="comment">// static jfif-centered resampling (across block boundaries)</span></div>
-<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;</div>
-<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;<span class="keyword">typedef</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *(*resample_row_func)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in0, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in1,</div>
-<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160; <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs);</div>
-<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160;</div>
-<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;<span class="preprocessor">#define stbi__div4(x) ((stbi_uc) ((x) &gt;&gt; 2))</span></div>
-<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *resample_row_1(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;{</div>
-<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160; STBI_NOTUSED(out);</div>
-<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160; STBI_NOTUSED(in_far);</div>
-<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160; STBI_NOTUSED(w);</div>
-<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160; STBI_NOTUSED(hs);</div>
-<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160; <span class="keywordflow">return</span> in_near;</div>
-<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;}</div>
-<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;</div>
-<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>* stbi__resample_row_v_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;{</div>
-<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160; <span class="comment">// need to generate two samples vertically for every one in input</span></div>
-<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160; STBI_NOTUSED(hs);</div>
-<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w; ++i)</div>
-<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2);</div>
-<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;}</div>
-<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160;</div>
-<div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>* stbi__resample_row_h_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160;{</div>
-<div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160; <span class="comment">// need to generate two samples horizontally for every one in input</span></div>
-<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *input = in_near;</div>
-<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;</div>
-<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
-<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span>&#160; <span class="comment">// if only one sample, can&#39;t do any interpolation</span></div>
-<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160; out[0] = out[1] = input[0];</div>
-<div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160; }</div>
-<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;</div>
-<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160; out[0] = input[0];</div>
-<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160; out[1] = stbi__div4(input[0]*3 + input[1] + 2);</div>
-<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160; <span class="keywordflow">for</span> (i=1; i &lt; w-1; ++i) {</div>
-<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160; <span class="keywordtype">int</span> n = 3*input[i]+2;</div>
-<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160; out[i*2+0] = stbi__div4(n+input[i-1]);</div>
-<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160; out[i*2+1] = stbi__div4(n+input[i+1]);</div>
-<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160; }</div>
-<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160; out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2);</div>
-<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160; out[i*2+1] = input[w-1];</div>
-<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;</div>
-<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160; STBI_NOTUSED(in_far);</div>
-<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160; STBI_NOTUSED(hs);</div>
-<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;</div>
-<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;}</div>
-<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;</div>
-<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;<span class="preprocessor">#define stbi__div16(x) ((stbi_uc) ((x) &gt;&gt; 4))</span></div>
-<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_hv_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;{</div>
-<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160; <span class="comment">// need to generate 2x2 samples for every one in input</span></div>
-<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160; <span class="keywordtype">int</span> i,t0,t1;</div>
-<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
-<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160; out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);</div>
-<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160; }</div>
-<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;</div>
-<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160; t1 = 3*in_near[0] + in_far[0];</div>
-<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160; out[0] = stbi__div4(t1+2);</div>
-<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160; <span class="keywordflow">for</span> (i=1; i &lt; w; ++i) {</div>
-<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160; t0 = t1;</div>
-<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160; t1 = 3*in_near[i]+in_far[i];</div>
-<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160; out[i*2-1] = stbi__div16(3*t0 + t1 + 8);</div>
-<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160; out[i*2 ] = stbi__div16(3*t1 + t0 + 8);</div>
-<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160; }</div>
-<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160; out[w*2-1] = stbi__div4(t1+2);</div>
-<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160;</div>
-<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160; STBI_NOTUSED(hs);</div>
-<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;</div>
-<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;}</div>
-<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160;</div>
-<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2) || defined(STBI_NEON)</span></div>
-<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_hv_2_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160;{</div>
-<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160; <span class="comment">// need to generate 2x2 samples for every one in input</span></div>
-<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; <span class="keywordtype">int</span> i=0,t0,t1;</div>
-<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;</div>
-<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
-<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160; out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);</div>
-<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160; }</div>
-<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;</div>
-<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160; t1 = 3*in_near[0] + in_far[0];</div>
-<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160; <span class="comment">// process groups of 8 pixels for as long as we can.</span></div>
-<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; <span class="comment">// note we can&#39;t handle the last pixel in a row in this loop</span></div>
-<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160; <span class="comment">// because we need to handle the filter boundary conditions.</span></div>
-<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160; <span class="keywordflow">for</span> (; i &lt; ((w-1) &amp; ~7); i += 8) {</div>
-<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2)</span></div>
-<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160;<span class="preprocessor"></span> <span class="comment">// load and perform the vertical filtering pass</span></div>
-<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160; <span class="comment">// this uses 3*x + y = 4*x + (y - x)</span></div>
-<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160; __m128i zero = _mm_setzero_si128();</div>
-<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160; __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i));</div>
-<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i));</div>
-<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; __m128i farw = _mm_unpacklo_epi8(farb, zero);</div>
-<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160; __m128i nearw = _mm_unpacklo_epi8(nearb, zero);</div>
-<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160; __m128i diff = _mm_sub_epi16(farw, nearw);</div>
-<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160; __m128i nears = _mm_slli_epi16(nearw, 2);</div>
-<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160; __m128i curr = _mm_add_epi16(nears, diff); <span class="comment">// current row</span></div>
-<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;</div>
-<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160; <span class="comment">// horizontal filter works the same based on shifted vers of current</span></div>
-<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160; <span class="comment">// row. &quot;prev&quot; is current row shifted right by 1 pixel; we need to</span></div>
-<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160; <span class="comment">// insert the previous pixel value (from t1).</span></div>
-<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160; <span class="comment">// &quot;next&quot; is current row shifted left by 1 pixel, with first pixel</span></div>
-<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160; <span class="comment">// of next block of 8 pixels added in.</span></div>
-<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160; __m128i prv0 = _mm_slli_si128(curr, 2);</div>
-<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160; __m128i nxt0 = _mm_srli_si128(curr, 2);</div>
-<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160; __m128i prev = _mm_insert_epi16(prv0, t1, 0);</div>
-<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160; __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7);</div>
-<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;</div>
-<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160; <span class="comment">// horizontal filter, polyphase implementation since it&#39;s convenient:</span></div>
-<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160; <span class="comment">// even pixels = 3*cur + prev = cur*4 + (prev - cur)</span></div>
-<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160; <span class="comment">// odd pixels = 3*cur + next = cur*4 + (next - cur)</span></div>
-<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160; <span class="comment">// note the shared term.</span></div>
-<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160; __m128i bias = _mm_set1_epi16(8);</div>
-<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160; __m128i curs = _mm_slli_epi16(curr, 2);</div>
-<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160; __m128i prvd = _mm_sub_epi16(prev, curr);</div>
-<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160; __m128i nxtd = _mm_sub_epi16(next, curr);</div>
-<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160; __m128i curb = _mm_add_epi16(curs, bias);</div>
-<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160; __m128i even = _mm_add_epi16(prvd, curb);</div>
-<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160; __m128i odd = _mm_add_epi16(nxtd, curb);</div>
-<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;</div>
-<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160; <span class="comment">// interleave even and odd pixels, then undo scaling.</span></div>
-<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160; __m128i int0 = _mm_unpacklo_epi16(even, odd);</div>
-<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160; __m128i int1 = _mm_unpackhi_epi16(even, odd);</div>
-<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160; __m128i de0 = _mm_srli_epi16(int0, 4);</div>
-<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160; __m128i de1 = _mm_srli_epi16(int1, 4);</div>
-<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;</div>
-<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160; <span class="comment">// pack and write output</span></div>
-<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160; __m128i outv = _mm_packus_epi16(de0, de1);</div>
-<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160; _mm_storeu_si128((__m128i *) (out + i*2), outv);</div>
-<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;<span class="preprocessor">#elif defined(STBI_NEON)</span></div>
-<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;<span class="preprocessor"></span> <span class="comment">// load and perform the vertical filtering pass</span></div>
-<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160; <span class="comment">// this uses 3*x + y = 4*x + (y - x)</span></div>
-<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160; uint8x8_t farb = vld1_u8(in_far + i);</div>
-<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160; uint8x8_t nearb = vld1_u8(in_near + i);</div>
-<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160; int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));</div>
-<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));</div>
-<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160; int16x8_t curr = vaddq_s16(nears, diff); <span class="comment">// current row</span></div>
-<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160;</div>
-<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160; <span class="comment">// horizontal filter works the same based on shifted vers of current</span></div>
-<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160; <span class="comment">// row. &quot;prev&quot; is current row shifted right by 1 pixel; we need to</span></div>
-<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160; <span class="comment">// insert the previous pixel value (from t1).</span></div>
-<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160; <span class="comment">// &quot;next&quot; is current row shifted left by 1 pixel, with first pixel</span></div>
-<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160; <span class="comment">// of next block of 8 pixels added in.</span></div>
-<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160; int16x8_t prv0 = vextq_s16(curr, curr, 7);</div>
-<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160; int16x8_t nxt0 = vextq_s16(curr, curr, 1);</div>
-<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160; int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);</div>
-<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7);</div>
-<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;</div>
-<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160; <span class="comment">// horizontal filter, polyphase implementation since it&#39;s convenient:</span></div>
-<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160; <span class="comment">// even pixels = 3*cur + prev = cur*4 + (prev - cur)</span></div>
-<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160; <span class="comment">// odd pixels = 3*cur + next = cur*4 + (next - cur)</span></div>
-<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160; <span class="comment">// note the shared term.</span></div>
-<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160; int16x8_t curs = vshlq_n_s16(curr, 2);</div>
-<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160; int16x8_t prvd = vsubq_s16(prev, curr);</div>
-<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160; int16x8_t nxtd = vsubq_s16(next, curr);</div>
-<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160; int16x8_t even = vaddq_s16(curs, prvd);</div>
-<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160; int16x8_t odd = vaddq_s16(curs, nxtd);</div>
+<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;<span class="preprocessor">#undef dct_long_mul</span></div>
+<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_long_mac</span></div>
+<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_widen</span></div>
+<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wadd</span></div>
+<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_wsub</span></div>
+<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_bfly32o</span></div>
+<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef dct_pass</span></div>
+<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;</div>
+<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;<span class="preprocessor">#endif // STBI_NEON</span></div>
+<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160;<span class="preprocessor">#define STBI__MARKER_none 0xff</span></div>
+<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160;<span class="preprocessor"></span><span class="comment">// if there&#39;s a pending marker from the entropy stream, return that</span></div>
+<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160;<span class="comment">// otherwise, fetch from the stream and get a marker. if there&#39;s no</span></div>
+<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;<span class="comment">// marker, return 0xff, which is never a valid marker value</span></div>
+<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__get_marker(stbi__jpeg *j)</div>
+<div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160;{</div>
+<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> x;</div>
+<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160; <span class="keywordflow">if</span> (j-&gt;marker != STBI__MARKER_none) {</div>
+<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160; x = j-&gt;marker;</div>
+<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160; j-&gt;marker = STBI__MARKER_none;</div>
+<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160; <span class="keywordflow">return</span> x;</div>
+<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160; }</div>
+<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160; x = stbi__get8(j-&gt;s);</div>
+<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160; <span class="keywordflow">if</span> (x != 0xff)</div>
+<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160; <span class="keywordflow">return</span> STBI__MARKER_none;</div>
+<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160; <span class="keywordflow">while</span> (x == 0xff)</div>
+<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160; x = stbi__get8(j-&gt;s); <span class="comment">// consume repeated 0xff fill bytes</span></div>
+<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160; <span class="keywordflow">return</span> x;</div>
+<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;}</div>
+<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;</div>
+<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;<span class="comment">// in each scan, we&#39;ll have scan_n components, and the order</span></div>
+<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;<span class="comment">// of the components is specified by order[]</span></div>
+<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;<span class="preprocessor">#define STBI__RESTART(x) ((x) &gt;= 0xd0 &amp;&amp; (x) &lt;= 0xd7)</span></div>
+<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;<span class="comment">// after a restart interval, stbi__jpeg_reset the entropy decoder and</span></div>
+<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;<span class="comment">// the dc prediction</span></div>
+<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_reset(stbi__jpeg *j)</div>
+<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;{</div>
+<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160; j-&gt;code_bits = 0;</div>
+<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160; j-&gt;code_buffer = 0;</div>
+<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160; j-&gt;nomore = 0;</div>
+<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160; j-&gt;img_comp[0].dc_pred = j-&gt;img_comp[1].dc_pred = j-&gt;img_comp[2].dc_pred =</div>
+<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160; j-&gt;img_comp[3].dc_pred = 0;</div>
+<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160; j-&gt;marker = STBI__MARKER_none;</div>
+<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160; j-&gt;todo = j-&gt;restart_interval ? j-&gt;restart_interval : 0x7fffffff;</div>
+<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160; j-&gt;eob_run = 0;</div>
+<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160; <span class="comment">// no more than 1&lt;&lt;31 MCUs if no restart_interal? that&#39;s plenty safe,</span></div>
+<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160; <span class="comment">// since we don&#39;t even allow 1&lt;&lt;30 pixels</span></div>
+<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160;}</div>
+<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;</div>
+<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_entropy_coded_data(stbi__jpeg *z)</div>
+<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;{</div>
+<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160; stbi__jpeg_reset(z);</div>
+<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160; <span class="keywordflow">if</span> (!z-&gt;progressive) {</div>
+<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n == 1) {</div>
+<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; STBI_SIMD_ALIGN(<span class="keywordtype">short</span>, data[64]);</div>
+<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[0];</div>
+<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160; <span class="comment">// non-interleaved data, we just need to process one block at a</span></div>
+<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160; <span class="comment">// time, in trivial scanline order number of blocks to do just</span></div>
+<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160; <span class="comment">// depends on how many actual &quot;pixels&quot; this component has,</span></div>
+<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160; <span class="comment">// independent of interleaved MCU blocking and such</span></div>
+<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; h; ++j) {</div>
+<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w; ++i) {</div>
+<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
+<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block(</div>
+<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160; z, data, z-&gt;huff_dc + z-&gt;img_comp[n].hd,</div>
+<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160; z-&gt;huff_ac + ha, z-&gt;fast_ac[ha], n,</div>
+<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160; z-&gt;dequant[z-&gt;img_comp[n].tq]))</div>
+<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160; z-&gt;idct_block_kernel(z-&gt;img_comp[n].data +</div>
+<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160; z-&gt;img_comp[n].w2 * j * 8 + i * 8,</div>
+<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160; z-&gt;img_comp[n].w2, data);</div>
+<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160; <span class="comment">// every data block is an MCU, so countdown the restart</span></div>
+<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160; <span class="comment">// interval</span></div>
+<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
+<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24)</div>
+<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160; stbi__grow_buffer_unsafe(z);</div>
+<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160; <span class="comment">// if it&#39;s NOT a restart, then just bail, so we get</span></div>
+<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160; <span class="comment">// corrupt data rather than no data</span></div>
+<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker))</div>
+<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160; stbi__jpeg_reset(z);</div>
+<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160; }</div>
+<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160; }</div>
+<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160; }</div>
+<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// interleaved</span></div>
+<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160; <span class="keywordtype">int</span> i, j, k, x, y;</div>
+<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160; STBI_SIMD_ALIGN(<span class="keywordtype">short</span>, data[64]);</div>
+<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; z-&gt;img_mcu_y; ++j) {</div>
+<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;img_mcu_x; ++i) {</div>
+<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160; <span class="comment">// scan an interleaved mcu... process scan_n components in</span></div>
+<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160; <span class="comment">// order</span></div>
+<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; z-&gt;scan_n; ++k) {</div>
+<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[k];</div>
+<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160; <span class="comment">// scan out an mcu&#39;s worth of this component; that&#39;s</span></div>
+<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160; <span class="comment">// just determined by the basic H and V specified for</span></div>
+<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160; <span class="comment">// the component</span></div>
+<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160; <span class="keywordflow">for</span> (y = 0; y &lt; z-&gt;img_comp[n].v; ++y) {</div>
+<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160; <span class="keywordflow">for</span> (x = 0; x &lt; z-&gt;img_comp[n].h; ++x) {</div>
+<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160; <span class="keywordtype">int</span> x2 = (i * z-&gt;img_comp[n].h + x) * 8;</div>
+<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160; <span class="keywordtype">int</span> y2 = (j * z-&gt;img_comp[n].v + y) * 8;</div>
+<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
+<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block(</div>
+<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160; z, data, z-&gt;huff_dc + z-&gt;img_comp[n].hd,</div>
+<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160; z-&gt;huff_ac + ha, z-&gt;fast_ac[ha], n,</div>
+<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160; z-&gt;dequant[z-&gt;img_comp[n].tq]))</div>
+<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160; z-&gt;idct_block_kernel(</div>
+<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160; z-&gt;img_comp[n].data +</div>
+<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160; z-&gt;img_comp[n].w2 * y2 + x2,</div>
+<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160; z-&gt;img_comp[n].w2, data);</div>
+<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160; }</div>
+<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160; }</div>
+<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160; }</div>
+<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160; <span class="comment">// after all interleaved components, that&#39;s an interleaved</span></div>
+<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160; <span class="comment">// MCU, so now count down the restart interval</span></div>
+<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
+<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24)</div>
+<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160; stbi__grow_buffer_unsafe(z);</div>
+<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker))</div>
+<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160; stbi__jpeg_reset(z);</div>
+<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160; }</div>
+<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160; }</div>
+<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160; }</div>
+<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160; }</div>
+<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n == 1) {</div>
+<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[0];</div>
+<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160; <span class="comment">// non-interleaved data, we just need to process one block at a</span></div>
+<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160; <span class="comment">// time, in trivial scanline order number of blocks to do just</span></div>
+<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160; <span class="comment">// depends on how many actual &quot;pixels&quot; this component has,</span></div>
+<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160; <span class="comment">// independent of interleaved MCU blocking and such</span></div>
+<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; h; ++j) {</div>
+<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w; ++i) {</div>
+<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160; <span class="keywordtype">short</span> *data = z-&gt;img_comp[n].coeff +</div>
+<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160; 64 * (i + j * z-&gt;img_comp[n].coeff_w);</div>
+<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start == 0) {</div>
+<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_dc(</div>
+<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160; z, data, &amp;z-&gt;huff_dc[z-&gt;img_comp[n].hd], n))</div>
+<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160; <span class="keywordtype">int</span> ha = z-&gt;img_comp[n].ha;</div>
+<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_ac(</div>
+<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160; z, data, &amp;z-&gt;huff_ac[ha], z-&gt;fast_ac[ha]))</div>
+<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160; }</div>
+<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160; <span class="comment">// every data block is an MCU, so countdown the restart</span></div>
+<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160; <span class="comment">// interval</span></div>
+<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
+<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24)</div>
+<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160; stbi__grow_buffer_unsafe(z);</div>
+<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker))</div>
+<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160; stbi__jpeg_reset(z);</div>
+<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160; }</div>
+<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160; }</div>
+<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160; }</div>
+<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// interleaved</span></div>
+<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160; <span class="keywordtype">int</span> i, j, k, x, y;</div>
+<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; z-&gt;img_mcu_y; ++j) {</div>
+<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;img_mcu_x; ++i) {</div>
+<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160; <span class="comment">// scan an interleaved mcu... process scan_n components in</span></div>
+<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160; <span class="comment">// order</span></div>
+<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; z-&gt;scan_n; ++k) {</div>
+<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160; <span class="keywordtype">int</span> n = z-&gt;order[k];</div>
+<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160; <span class="comment">// scan out an mcu&#39;s worth of this component; that&#39;s</span></div>
+<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160; <span class="comment">// just determined by the basic H and V specified for</span></div>
+<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160; <span class="comment">// the component</span></div>
+<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160; <span class="keywordflow">for</span> (y = 0; y &lt; z-&gt;img_comp[n].v; ++y) {</div>
+<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160; <span class="keywordflow">for</span> (x = 0; x &lt; z-&gt;img_comp[n].h; ++x) {</div>
+<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160; <span class="keywordtype">int</span> x2 = (i * z-&gt;img_comp[n].h + x);</div>
+<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160; <span class="keywordtype">int</span> y2 = (j * z-&gt;img_comp[n].v + y);</div>
+<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160; <span class="keywordtype">short</span> *data =</div>
+<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160; z-&gt;img_comp[n].coeff +</div>
+<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160; 64 * (x2 + y2 * z-&gt;img_comp[n].coeff_w);</div>
+<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160; <span class="keywordflow">if</span> (!stbi__jpeg_decode_block_prog_dc(</div>
+<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160; z, data, &amp;z-&gt;huff_dc[z-&gt;img_comp[n].hd],</div>
+<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160; n))</div>
+<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160; }</div>
+<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160; }</div>
+<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160; }</div>
+<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160; <span class="comment">// after all interleaved components, that&#39;s an interleaved</span></div>
+<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160; <span class="comment">// MCU, so now count down the restart interval</span></div>
+<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160; <span class="keywordflow">if</span> (--z-&gt;todo &lt;= 0) {</div>
+<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160; <span class="keywordflow">if</span> (z-&gt;code_bits &lt; 24)</div>
+<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160; stbi__grow_buffer_unsafe(z);</div>
+<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160; <span class="keywordflow">if</span> (!STBI__RESTART(z-&gt;marker))</div>
+<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160; stbi__jpeg_reset(z);</div>
+<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; }</div>
+<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160; }</div>
+<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160; }</div>
+<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>&#160; }</div>
+<div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160; }</div>
+<div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160;}</div>
+<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;</div>
+<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_dequantize(<span class="keywordtype">short</span> *data, stbi__uint16 *dequant)</div>
+<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;{</div>
+<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 64; ++i)</div>
+<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160; data[i] *= dequant[i];</div>
+<div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>&#160;}</div>
+<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;</div>
+<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__jpeg_finish(stbi__jpeg *z)</div>
+<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;{</div>
+<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
+<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160; <span class="comment">// dequantize and idct the data</span></div>
+<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160; <span class="keywordtype">int</span> i, j, n;</div>
+<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160; <span class="keywordflow">for</span> (n = 0; n &lt; z-&gt;s-&gt;img_n; ++n) {</div>
+<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160; <span class="keywordtype">int</span> w = (z-&gt;img_comp[n].x + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160; <span class="keywordtype">int</span> h = (z-&gt;img_comp[n].y + 7) &gt;&gt; 3;</div>
+<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; h; ++j) {</div>
+<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w; ++i) {</div>
+<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160; <span class="keywordtype">short</span> *data = z-&gt;img_comp[n].coeff +</div>
+<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160; 64 * (i + j * z-&gt;img_comp[n].coeff_w);</div>
+<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160; stbi__jpeg_dequantize(data, z-&gt;dequant[z-&gt;img_comp[n].tq]);</div>
+<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160; z-&gt;idct_block_kernel(z-&gt;img_comp[n].data +</div>
+<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160; z-&gt;img_comp[n].w2 * j * 8 + i * 8,</div>
+<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160; z-&gt;img_comp[n].w2, data);</div>
+<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160; }</div>
+<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160; }</div>
+<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160; }</div>
+<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160; }</div>
+<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;}</div>
+<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;</div>
+<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_marker(stbi__jpeg *z, <span class="keywordtype">int</span> m)</div>
+<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;{</div>
+<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160; <span class="keywordtype">int</span> <a class="code" href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587">L</a>;</div>
+<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160; <span class="keywordflow">switch</span> (m) {</div>
+<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160; <span class="keywordflow">case</span> STBI__MARKER_none: <span class="comment">// no marker found</span></div>
+<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;expected marker&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;</div>
+<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160; <span class="keywordflow">case</span> 0xDD: <span class="comment">// DRI - specify restart interval</span></div>
+<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(z-&gt;s) != 4)</div>
+<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DRI len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160; z-&gt;restart_interval = stbi__get16be(z-&gt;s);</div>
+<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;</div>
+<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160; <span class="keywordflow">case</span> 0xDB: <span class="comment">// DQT - define quantization table</span></div>
+<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160; L = stbi__get16be(z-&gt;s) - 2;</div>
+<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160; <span class="keywordflow">while</span> (L &gt; 0) {</div>
+<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160; <span class="keywordtype">int</span> p = q &gt;&gt; 4, sixteen = (p != 0);</div>
+<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160; <span class="keywordtype">int</span> t = q &amp; 15, i;</div>
+<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160; <span class="keywordflow">if</span> (p != 0 &amp;&amp; p != 1)</div>
+<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DQT type&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160; <span class="keywordflow">if</span> (t &gt; 3)</div>
+<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DQT table&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160;</div>
+<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 64; ++i)</div>
+<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; z-&gt;dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(</div>
+<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160; sixteen ? stbi__get16be(z-&gt;s) : stbi__get8(z-&gt;s));</div>
+<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160; L -= (sixteen ? 129 : 65);</div>
+<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160; }</div>
+<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160; <span class="keywordflow">return</span> L == 0;</div>
+<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;</div>
+<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160; <span class="keywordflow">case</span> 0xC4: <span class="comment">// DHT - define huffman table</span></div>
+<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160; L = stbi__get16be(z-&gt;s) - 2;</div>
+<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160; <span class="keywordflow">while</span> (L &gt; 0) {</div>
+<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *v;</div>
+<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160; <span class="keywordtype">int</span> sizes[16], i, n = 0;</div>
+<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160; <span class="keywordtype">int</span> tc = q &gt;&gt; 4;</div>
+<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160; <span class="keywordtype">int</span> th = q &amp; 15;</div>
+<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160; <span class="keywordflow">if</span> (tc &gt; 1 || th &gt; 3)</div>
+<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DHT header&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 16; ++i) {</div>
+<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; sizes[i] = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; n += sizes[i];</div>
+<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160; }</div>
+<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160; L -= 17;</div>
+<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160; <span class="keywordflow">if</span> (tc == 0) {</div>
+<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160; <span class="keywordflow">if</span> (!stbi__build_huffman(z-&gt;huff_dc + th, sizes))</div>
+<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160; v = z-&gt;huff_dc[th].values;</div>
+<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160; <span class="keywordflow">if</span> (!stbi__build_huffman(z-&gt;huff_ac + th, sizes))</div>
+<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160; v = z-&gt;huff_ac[th].values;</div>
+<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160; }</div>
+<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; n; ++i)</div>
+<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160; v[i] = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160; <span class="keywordflow">if</span> (tc != 0)</div>
+<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160; stbi__build_fast_ac(z-&gt;fast_ac[th], z-&gt;huff_ac + th);</div>
+<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160; L -= n;</div>
+<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160; }</div>
+<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160; <span class="keywordflow">return</span> L == 0;</div>
+<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160; }</div>
+<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160;</div>
+<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160; <span class="comment">// check for comment block or APP blocks</span></div>
+<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160; <span class="keywordflow">if</span> ((m &gt;= 0xE0 &amp;&amp; m &lt;= 0xEF) || m == 0xFE) {</div>
+<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160; L = stbi__get16be(z-&gt;s);</div>
+<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160; <span class="keywordflow">if</span> (L &lt; 2) {</div>
+<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160; <span class="keywordflow">if</span> (m == 0xFE)</div>
+<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad COM len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad APP len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160; }</div>
+<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160; L -= 2;</div>
+<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;</div>
+<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160; <span class="keywordflow">if</span> (m == 0xE0 &amp;&amp; L &gt;= 5) { <span class="comment">// JFIF APP0 segment</span></div>
+<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tag[5] = {<span class="charliteral">&#39;J&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;\0&#39;</span>};</div>
+<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160; <span class="keywordtype">int</span> ok = 1;</div>
+<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 5; ++i)</div>
+<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160; <span class="keywordflow">if</span> (stbi__get8(z-&gt;s) != tag[i])</div>
+<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160; ok = 0;</div>
+<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160; L -= 5;</div>
+<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160; <span class="keywordflow">if</span> (ok)</div>
+<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160; z-&gt;jfif = 1;</div>
+<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m == 0xEE &amp;&amp; L &gt;= 12) { <span class="comment">// Adobe APP14 segment</span></div>
+<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tag[6] = {<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;d&#39;</span>, <span class="charliteral">&#39;o&#39;</span>, <span class="charliteral">&#39;b&#39;</span>, <span class="charliteral">&#39;e&#39;</span>, <span class="charliteral">&#39;\0&#39;</span>};</div>
+<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160; <span class="keywordtype">int</span> ok = 1;</div>
+<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 6; ++i)</div>
+<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160; <span class="keywordflow">if</span> (stbi__get8(z-&gt;s) != tag[i])</div>
+<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160; ok = 0;</div>
+<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160; L -= 6;</div>
+<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160; <span class="keywordflow">if</span> (ok) {</div>
+<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160; stbi__get8(z-&gt;s); <span class="comment">// version</span></div>
+<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160; stbi__get16be(z-&gt;s); <span class="comment">// flags0</span></div>
+<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160; stbi__get16be(z-&gt;s); <span class="comment">// flags1</span></div>
+<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; z-&gt;app14_color_transform = stbi__get8(z-&gt;s); <span class="comment">// color transform</span></div>
+<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160; L -= 6;</div>
+<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160; }</div>
+<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160; }</div>
+<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160;</div>
+<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160; stbi__skip(z-&gt;s, L);</div>
+<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160; }</div>
+<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160;</div>
+<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;unknown marker&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;}</div>
<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160;</div>
-<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160; <span class="comment">// undo scaling and round, then store with even/odd phases interleaved</span></div>
-<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160; uint8x8x2_t o;</div>
-<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160; o.val[0] = vqrshrun_n_s16(even, 4);</div>
-<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160; o.val[1] = vqrshrun_n_s16(odd, 4);</div>
-<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160; vst2_u8(out + i*2, o);</div>
-<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160; <span class="comment">// &quot;previous&quot; value for next iter</span></div>
-<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160; t1 = 3*in_near[i+7] + in_far[i+7];</div>
-<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160; }</div>
-<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;</div>
-<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160; t0 = t1;</div>
-<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; t1 = 3*in_near[i] + in_far[i];</div>
-<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; out[i*2] = stbi__div16(3*t1 + t0 + 8);</div>
-<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;</div>
-<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160; <span class="keywordflow">for</span> (++i; i &lt; w; ++i) {</div>
-<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; t0 = t1;</div>
-<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; t1 = 3*in_near[i]+in_far[i];</div>
-<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160; out[i*2-1] = stbi__div16(3*t0 + t1 + 8);</div>
-<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160; out[i*2 ] = stbi__div16(3*t1 + t0 + 8);</div>
-<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; }</div>
-<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160; out[w*2-1] = stbi__div4(t1+2);</div>
-<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;</div>
-<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160; STBI_NOTUSED(hs);</div>
-<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;</div>
-<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;}</div>
-<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_generic(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
-<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;{</div>
-<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; <span class="comment">// resample with nearest-neighbor</span></div>
-<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; STBI_NOTUSED(in_far);</div>
-<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w; ++i)</div>
-<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; hs; ++j)</div>
-<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; out[i*hs+j] = in_near[i];</div>
-<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;}</div>
-<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;</div>
-<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;<span class="comment">// this is a reduced-precision calculation of YCbCr-to-RGB introduced</span></div>
-<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160;<span class="comment">// to make sure the code produces the same results in both SIMD and scalar</span></div>
-<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;<span class="preprocessor">#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) &lt;&lt; 8)</span></div>
-<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__YCbCr_to_RGB_row(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcb, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcr, <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step)</div>
-<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;{</div>
-<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; count; ++i) {</div>
-<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160; <span class="keywordtype">int</span> y_fixed = (y[i] &lt;&lt; 20) + (1&lt;&lt;19); <span class="comment">// rounding</span></div>
-<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; <span class="keywordtype">int</span> r,g,b;</div>
-<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160; <span class="keywordtype">int</span> cr = pcr[i] - 128;</div>
-<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160; <span class="keywordtype">int</span> cb = pcb[i] - 128;</div>
-<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160; r = y_fixed + cr* stbi__float2fixed(1.40200f);</div>
-<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) &amp; 0xffff0000);</div>
-<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; b = y_fixed + cb* stbi__float2fixed(1.77200f);</div>
-<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; r &gt;&gt;= 20;</div>
-<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; g &gt;&gt;= 20;</div>
-<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; b &gt;&gt;= 20;</div>
-<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) r &gt; 255) { <span class="keywordflow">if</span> (r &lt; 0) r = 0; <span class="keywordflow">else</span> r = 255; }</div>
-<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) g &gt; 255) { <span class="keywordflow">if</span> (g &lt; 0) g = 0; <span class="keywordflow">else</span> g = 255; }</div>
-<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) b &gt; 255) { <span class="keywordflow">if</span> (b &lt; 0) b = 0; <span class="keywordflow">else</span> b = 255; }</div>
-<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)r;</div>
-<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)g;</div>
-<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)b;</div>
-<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; out[3] = 255;</div>
-<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160; out += step;</div>
-<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; }</div>
-<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160;}</div>
-<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;</div>
-<div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2) || defined(STBI_NEON)</span></div>
-<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__YCbCr_to_RGB_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *y, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *pcb, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *pcr, <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step)</div>
-<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;{</div>
-<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; <span class="keywordtype">int</span> i = 0;</div>
+<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;<span class="comment">// after we see SOS</span></div>
+<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_scan_header(stbi__jpeg *z)</div>
+<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;{</div>
+<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160; <span class="keywordtype">int</span> Ls = stbi__get16be(z-&gt;s);</div>
+<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160; z-&gt;scan_n = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160; <span class="keywordflow">if</span> (z-&gt;scan_n &lt; 1 || z-&gt;scan_n &gt; 4 || z-&gt;scan_n &gt; (<span class="keywordtype">int</span>)z-&gt;s-&gt;img_n)</div>
+<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS component count&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160; <span class="keywordflow">if</span> (Ls != 6 + 2 * z-&gt;scan_n)</div>
+<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;scan_n; ++i) {</div>
+<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = stbi__get8(z-&gt;s), which;</div>
+<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; <span class="keywordtype">int</span> q = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; <span class="keywordflow">for</span> (which = 0; which &lt; z-&gt;s-&gt;img_n; ++which)</div>
+<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[which].id == <span class="keywordtype">id</span>)</div>
+<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; <span class="keywordflow">if</span> (which == z-&gt;s-&gt;img_n)</div>
+<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// no match</span></div>
+<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160; z-&gt;img_comp[which].hd = q &gt;&gt; 4;</div>
+<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[which].hd &gt; 3)</div>
+<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad DC huff&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160; z-&gt;img_comp[which].ha = q &amp; 15;</div>
+<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[which].ha &gt; 3)</div>
+<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad AC huff&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; z-&gt;order[i] = which;</div>
+<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160; }</div>
+<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;</div>
+<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160; {</div>
+<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160; <span class="keywordtype">int</span> aa;</div>
+<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160; z-&gt;spec_start = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160; z-&gt;spec_end = stbi__get8(z-&gt;s); <span class="comment">// should be 63, but might be 0</span></div>
+<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; aa = stbi__get8(z-&gt;s);</div>
+<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; z-&gt;succ_high = (aa &gt;&gt; 4);</div>
+<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; z-&gt;succ_low = (aa &amp; 15);</div>
+<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
+<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start &gt; 63 || z-&gt;spec_end &gt; 63 ||</div>
+<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; z-&gt;spec_start &gt; z-&gt;spec_end || z-&gt;succ_high &gt; 13 ||</div>
+<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; z-&gt;succ_low &gt; 13)</div>
+<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160; <span class="keywordflow">if</span> (z-&gt;spec_start != 0)</div>
+<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160; <span class="keywordflow">if</span> (z-&gt;succ_high != 0 || z-&gt;succ_low != 0)</div>
+<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOS&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160; z-&gt;spec_end = 63;</div>
+<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160; }</div>
+<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160; }</div>
+<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;</div>
+<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;}</div>
+<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;</div>
+<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__free_jpeg_components(stbi__jpeg *z, <span class="keywordtype">int</span> ncomp, <span class="keywordtype">int</span> why)</div>
+<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160;{</div>
+<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; ncomp; ++i) {</div>
+<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_data) {</div>
+<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; STBI_FREE(z-&gt;img_comp[i].raw_data);</div>
+<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; z-&gt;img_comp[i].raw_data = NULL;</div>
+<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; z-&gt;img_comp[i].data = NULL;</div>
+<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160; }</div>
+<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_coeff) {</div>
+<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; STBI_FREE(z-&gt;img_comp[i].raw_coeff);</div>
+<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; z-&gt;img_comp[i].raw_coeff = 0;</div>
+<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; z-&gt;img_comp[i].coeff = 0;</div>
+<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160; }</div>
+<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].linebuf) {</div>
+<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; STBI_FREE(z-&gt;img_comp[i].linebuf);</div>
+<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
+<div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160; }</div>
+<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160; }</div>
+<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160; <span class="keywordflow">return</span> why;</div>
+<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160;}</div>
<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;</div>
-<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
-<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;<span class="preprocessor"></span> <span class="comment">// step == 3 is pretty ugly on the final interleave, and i&#39;m not convinced</span></div>
-<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160; <span class="comment">// it&#39;s useful in practice (you wouldn&#39;t use it for textures, for example).</span></div>
-<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; <span class="comment">// so just accelerate step == 4 case.</span></div>
-<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160; <span class="keywordflow">if</span> (step == 4) {</div>
-<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; <span class="comment">// this is a fairly straightforward implementation and not super-optimized.</span></div>
-<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; __m128i signflip = _mm_set1_epi8(-0x80);</div>
-<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160; __m128i cr_const0 = _mm_set1_epi16( (<span class="keywordtype">short</span>) ( 1.40200f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160; __m128i cr_const1 = _mm_set1_epi16( - (<span class="keywordtype">short</span>) ( 0.71414f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160; __m128i cb_const0 = _mm_set1_epi16( - (<span class="keywordtype">short</span>) ( 0.34414f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160; __m128i cb_const1 = _mm_set1_epi16( (<span class="keywordtype">short</span>) ( 1.77200f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160; __m128i y_bias = _mm_set1_epi8((<span class="keywordtype">char</span>) (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) 128);</div>
-<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160; __m128i xw = _mm_set1_epi16(255); <span class="comment">// alpha channel</span></div>
-<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;</div>
-<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160; <span class="keywordflow">for</span> (; i+7 &lt; count; i += 8) {</div>
-<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160; <span class="comment">// load</span></div>
-<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160; __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i));</div>
-<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160; __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i));</div>
-<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160; __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i));</div>
-<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160; __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); <span class="comment">// -128</span></div>
-<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160; __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); <span class="comment">// -128</span></div>
-<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160;</div>
-<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160; <span class="comment">// unpack to short (and left-shift cr, cb by 8)</span></div>
-<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160; __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes);</div>
-<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160; __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);</div>
-<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160; __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);</div>
-<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;</div>
-<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160; <span class="comment">// color transform</span></div>
-<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160; __m128i yws = _mm_srli_epi16(yw, 4);</div>
-<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160; __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);</div>
-<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160; __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);</div>
-<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160; __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);</div>
-<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160; __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);</div>
-<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160; __m128i rws = _mm_add_epi16(cr0, yws);</div>
-<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160; __m128i gwt = _mm_add_epi16(cb0, yws);</div>
-<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160; __m128i bws = _mm_add_epi16(yws, cb1);</div>
-<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160; __m128i gws = _mm_add_epi16(gwt, cr1);</div>
-<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;</div>
-<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160; <span class="comment">// descale</span></div>
-<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160; __m128i rw = _mm_srai_epi16(rws, 4);</div>
-<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160; __m128i bw = _mm_srai_epi16(bws, 4);</div>
-<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160; __m128i gw = _mm_srai_epi16(gws, 4);</div>
-<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;</div>
-<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160; <span class="comment">// back to byte, set up for transpose</span></div>
-<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160; __m128i brb = _mm_packus_epi16(rw, bw);</div>
-<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160; __m128i gxb = _mm_packus_epi16(gw, xw);</div>
-<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;</div>
-<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160; <span class="comment">// transpose to interleave channels</span></div>
-<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160; __m128i t0 = _mm_unpacklo_epi8(brb, gxb);</div>
-<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160; __m128i t1 = _mm_unpackhi_epi8(brb, gxb);</div>
-<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160; __m128i o0 = _mm_unpacklo_epi16(t0, t1);</div>
-<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160; __m128i o1 = _mm_unpackhi_epi16(t0, t1);</div>
-<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;</div>
-<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160; <span class="comment">// store</span></div>
-<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160; _mm_storeu_si128((__m128i *) (out + 0), o0);</div>
-<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160; _mm_storeu_si128((__m128i *) (out + 16), o1);</div>
-<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160; out += 32;</div>
-<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160; }</div>
-<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160; }</div>
-<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
-<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;<span class="preprocessor"></span> <span class="comment">// in this version, step=3 support would be easy to add. but is there demand?</span></div>
-<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160; <span class="keywordflow">if</span> (step == 4) {</div>
-<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160; <span class="comment">// this is a fairly straightforward implementation and not super-optimized.</span></div>
-<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160; uint8x8_t signflip = vdup_n_u8(0x80);</div>
-<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160; int16x8_t cr_const0 = vdupq_n_s16( (<span class="keywordtype">short</span>) ( 1.40200f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160; int16x8_t cr_const1 = vdupq_n_s16( - (<span class="keywordtype">short</span>) ( 0.71414f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160; int16x8_t cb_const0 = vdupq_n_s16( - (<span class="keywordtype">short</span>) ( 0.34414f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160; int16x8_t cb_const1 = vdupq_n_s16( (<span class="keywordtype">short</span>) ( 1.77200f*4096.0f+0.5f));</div>
-<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;</div>
-<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160; <span class="keywordflow">for</span> (; i+7 &lt; count; i += 8) {</div>
-<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160; <span class="comment">// load</span></div>
-<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160; uint8x8_t y_bytes = vld1_u8(y + i);</div>
-<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160; uint8x8_t cr_bytes = vld1_u8(pcr + i);</div>
-<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160; uint8x8_t cb_bytes = vld1_u8(pcb + i);</div>
-<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160; int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));</div>
-<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160; int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));</div>
-<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;</div>
-<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160; <span class="comment">// expand to s16</span></div>
-<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160; int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));</div>
-<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160; int16x8_t crw = vshll_n_s8(cr_biased, 7);</div>
-<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160; int16x8_t cbw = vshll_n_s8(cb_biased, 7);</div>
-<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;</div>
-<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160; <span class="comment">// color transform</span></div>
-<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160; int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);</div>
-<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160; int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);</div>
-<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160; int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);</div>
-<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160; int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);</div>
-<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160; int16x8_t rws = vaddq_s16(yws, cr0);</div>
-<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160; int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);</div>
-<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160; int16x8_t bws = vaddq_s16(yws, cb1);</div>
-<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;</div>
-<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160; <span class="comment">// undo scaling, round, convert to byte</span></div>
-<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160; uint8x8x4_t o;</div>
-<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160; o.val[0] = vqrshrun_n_s16(rws, 4);</div>
-<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160; o.val[1] = vqrshrun_n_s16(gws, 4);</div>
-<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160; o.val[2] = vqrshrun_n_s16(bws, 4);</div>
-<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160; o.val[3] = vdup_n_u8(255);</div>
-<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;</div>
-<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160; <span class="comment">// store, interleaving r/g/b/a</span></div>
-<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160; vst4_u8(out, o);</div>
-<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160; out += 8*4;</div>
-<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160; }</div>
-<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160; }</div>
-<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160; <span class="keywordflow">for</span> (; i &lt; count; ++i) {</div>
-<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160; <span class="keywordtype">int</span> y_fixed = (y[i] &lt;&lt; 20) + (1&lt;&lt;19); <span class="comment">// rounding</span></div>
-<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160; <span class="keywordtype">int</span> r,g,b;</div>
-<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160; <span class="keywordtype">int</span> cr = pcr[i] - 128;</div>
-<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160; <span class="keywordtype">int</span> cb = pcb[i] - 128;</div>
-<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160; r = y_fixed + cr* stbi__float2fixed(1.40200f);</div>
-<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160; g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) &amp; 0xffff0000);</div>
-<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160; b = y_fixed + cb* stbi__float2fixed(1.77200f);</div>
-<div class="line"><a name="l03464"></a><span class="lineno"> 3464</span>&#160; r &gt;&gt;= 20;</div>
-<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160; g &gt;&gt;= 20;</div>
-<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160; b &gt;&gt;= 20;</div>
-<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) r &gt; 255) { <span class="keywordflow">if</span> (r &lt; 0) r = 0; <span class="keywordflow">else</span> r = 255; }</div>
-<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) g &gt; 255) { <span class="keywordflow">if</span> (g &lt; 0) g = 0; <span class="keywordflow">else</span> g = 255; }</div>
-<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>) b &gt; 255) { <span class="keywordflow">if</span> (b &lt; 0) b = 0; <span class="keywordflow">else</span> b = 255; }</div>
-<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)r;</div>
-<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)g;</div>
-<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)b;</div>
-<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160; out[3] = 255;</div>
-<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160; out += step;</div>
-<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160; }</div>
-<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;}</div>
-<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;<span class="comment">// set up the kernels</span></div>
-<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__setup_jpeg(stbi__jpeg *j)</div>
-<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;{</div>
-<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160; j-&gt;idct_block_kernel = stbi__idct_block;</div>
-<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;</div>
-<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2;</div>
-<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;</div>
-<div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
-<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__sse2_available()) {</div>
-<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160; j-&gt;idct_block_kernel = stbi__idct_simd;</div>
-<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;</div>
-<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;</div>
-<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160; }</div>
-<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
-<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;<span class="preprocessor"></span> j-&gt;idct_block_kernel = stbi__idct_simd;</div>
-<div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;</div>
-<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;</div>
-<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;</div>
-<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;<span class="comment">// clean up the temporary component buffers</span></div>
-<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__cleanup_jpeg(stbi__jpeg *j)</div>
-<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;{</div>
-<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160; stbi__free_jpeg_components(j, j-&gt;s-&gt;img_n, 0);</div>
-<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;}</div>
-<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;</div>
-<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;{</div>
-<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160; resample_row_func resample;</div>
-<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *line0,*line1;</div>
-<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160; <span class="keywordtype">int</span> hs,vs; <span class="comment">// expansion factor in each axis</span></div>
-<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160; <span class="keywordtype">int</span> w_lores; <span class="comment">// horizontal pixels pre-expansion</span></div>
-<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160; <span class="keywordtype">int</span> ystep; <span class="comment">// how far through vertical expansion we are</span></div>
-<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160; <span class="keywordtype">int</span> ypos; <span class="comment">// which pre-expansion row we&#39;re on</span></div>
-<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160;} stbi__resample;</div>
-<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;</div>
-<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;<span class="comment">// fast 0..255 * 0..255 =&gt; 0..255 rounded multiplication</span></div>
-<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__blinn_8x8(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> x, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> y)</div>
-<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;{</div>
-<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> t = x*y + 128;</div>
-<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) ((t + (t &gt;&gt;8)) &gt;&gt; 8);</div>
-<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160;}</div>
-<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;</div>
-<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *load_jpeg_image(stbi__jpeg *z, <span class="keywordtype">int</span> *out_x, <span class="keywordtype">int</span> *out_y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;{</div>
-<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160; <span class="keywordtype">int</span> n, decode_n, is_rgb;</div>
-<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160; z-&gt;s-&gt;img_n = 0; <span class="comment">// make stbi__cleanup_jpeg safe</span></div>
-<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;</div>
-<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160; <span class="comment">// validate req_comp</span></div>
-<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160; <span class="keywordflow">if</span> (req_comp &lt; 0 || req_comp &gt; 4) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad req_comp&quot;</span>, <span class="stringliteral">&quot;Internal error&quot;</span>);</div>
-<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;</div>
-<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160; <span class="comment">// load a jpeg image from whichever source, but leave in YCbCr format</span></div>
-<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); <span class="keywordflow">return</span> NULL; }</div>
-<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;</div>
-<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160; <span class="comment">// determine actual number of components to generate</span></div>
-<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160; n = req_comp ? req_comp : z-&gt;s-&gt;img_n &gt;= 3 ? 3 : 1;</div>
-<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;</div>
-<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160; is_rgb = z-&gt;s-&gt;img_n == 3 &amp;&amp; (z-&gt;rgb == 3 || (z-&gt;app14_color_transform == 0 &amp;&amp; !z-&gt;jfif));</div>
-<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;</div>
-<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160; <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 3 &amp;&amp; n &lt; 3 &amp;&amp; !is_rgb)</div>
-<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160; decode_n = 1;</div>
-<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160; decode_n = z-&gt;s-&gt;img_n;</div>
-<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;</div>
-<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160; <span class="comment">// resample and color-convert</span></div>
-<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160; {</div>
-<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160; <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i,j;</div>
-<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *output;</div>
-<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *coutput[4];</div>
+<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__process_frame_header(stbi__jpeg *z, <span class="keywordtype">int</span> scan)</div>
+<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;{</div>
+<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160; stbi__context *s = z-&gt;s;</div>
+<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; <span class="keywordtype">int</span> Lf, p, i, q, h_max = 1, v_max = 1, c;</div>
+<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160; Lf = stbi__get16be(s);</div>
+<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; <span class="keywordflow">if</span> (Lf &lt; 11)</div>
+<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOF len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>); <span class="comment">// JPEG</span></div>
+<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160; p = stbi__get8(s);</div>
+<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160; <span class="keywordflow">if</span> (p != 8)</div>
+<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160; <span class="keywordflow">return</span> stbi__err(</div>
+<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160; <span class="stringliteral">&quot;only 8-bit&quot;</span>,</div>
+<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160; <span class="stringliteral">&quot;JPEG format not supported: 8-bit only&quot;</span>); <span class="comment">// JPEG baseline</span></div>
+<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160; s-&gt;img_y = stbi__get16be(s);</div>
+<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_y == 0)</div>
+<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160; <span class="keywordflow">return</span> stbi__err(</div>
+<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160; <span class="stringliteral">&quot;no header height&quot;</span>,</div>
+<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160; <span class="stringliteral">&quot;JPEG format not supported: delayed height&quot;</span>); <span class="comment">// Legal, but we don&#39;t</span></div>
+<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160; <span class="comment">// handle it--but</span></div>
+<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160; <span class="comment">// neither does IJG</span></div>
+<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160; s-&gt;img_x = stbi__get16be(s);</div>
+<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_x == 0)</div>
+<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;0 width&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>); <span class="comment">// JPEG requires</span></div>
+<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160; c = stbi__get8(s);</div>
+<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160; <span class="keywordflow">if</span> (c != 3 &amp;&amp; c != 1 &amp;&amp; c != 4)</div>
+<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad component count&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160; s-&gt;img_n = c;</div>
+<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; c; ++i) {</div>
+<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160; z-&gt;img_comp[i].data = NULL;</div>
+<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
+<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160; }</div>
+<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160;</div>
+<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160; <span class="keywordflow">if</span> (Lf != 8 + 3 * s-&gt;img_n)</div>
+<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad SOF len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160;</div>
+<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160; z-&gt;rgb = 0;</div>
+<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; s-&gt;img_n; ++i) {</div>
+<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160; <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> rgb[3] = {<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;B&#39;</span>};</div>
+<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160; z-&gt;img_comp[i].id = stbi__get8(s);</div>
+<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_n == 3 &amp;&amp; z-&gt;img_comp[i].id == rgb[i])</div>
+<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160; ++z-&gt;rgb;</div>
+<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160; q = stbi__get8(s);</div>
+<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160; z-&gt;img_comp[i].h = (q &gt;&gt; 4);</div>
+<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160; <span class="keywordflow">if</span> (!z-&gt;img_comp[i].h || z-&gt;img_comp[i].h &gt; 4)</div>
+<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad H&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160; z-&gt;img_comp[i].v = q &amp; 15;</div>
+<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160; <span class="keywordflow">if</span> (!z-&gt;img_comp[i].v || z-&gt;img_comp[i].v &gt; 4)</div>
+<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad V&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160; z-&gt;img_comp[i].tq = stbi__get8(s);</div>
+<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].tq &gt; 3)</div>
+<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad TQ&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160; }</div>
+<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;</div>
+<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160; <span class="keywordflow">if</span> (scan != STBI__SCAN_load)</div>
+<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160;</div>
+<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(s-&gt;img_x, s-&gt;img_y, s-&gt;img_n, 0))</div>
+<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Image too large to decode&quot;</span>);</div>
+<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160;</div>
+<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; s-&gt;img_n; ++i) {</div>
+<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].h &gt; h_max)</div>
+<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160; h_max = z-&gt;img_comp[i].h;</div>
+<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].v &gt; v_max)</div>
+<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160; v_max = z-&gt;img_comp[i].v;</div>
+<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160; }</div>
+<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;</div>
+<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160; <span class="comment">// compute interleaved mcu info</span></div>
+<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160; z-&gt;img_h_max = h_max;</div>
+<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160; z-&gt;img_v_max = v_max;</div>
+<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160; z-&gt;img_mcu_w = h_max * 8;</div>
+<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160; z-&gt;img_mcu_h = v_max * 8;</div>
+<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160; <span class="comment">// these sizes can&#39;t be more than 17 bits</span></div>
+<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160; z-&gt;img_mcu_x = (s-&gt;img_x + z-&gt;img_mcu_w - 1) / z-&gt;img_mcu_w;</div>
+<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160; z-&gt;img_mcu_y = (s-&gt;img_y + z-&gt;img_mcu_h - 1) / z-&gt;img_mcu_h;</div>
+<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;</div>
+<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; s-&gt;img_n; ++i) {</div>
+<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160; <span class="comment">// number of effective pixels (e.g. for non-interleaved MCU)</span></div>
+<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160; z-&gt;img_comp[i].x = (s-&gt;img_x * z-&gt;img_comp[i].h + h_max - 1) / h_max;</div>
+<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160; z-&gt;img_comp[i].y = (s-&gt;img_y * z-&gt;img_comp[i].v + v_max - 1) / v_max;</div>
+<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160; <span class="comment">// to simplify generation, we&#39;ll allocate enough memory to decode</span></div>
+<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160; <span class="comment">// the bogus oversized data from using interleaved MCUs and their</span></div>
+<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160; <span class="comment">// big blocks (e.g. a 16x16 iMCU on an image of width 33); we won&#39;t</span></div>
+<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160; <span class="comment">// discard the extra data until colorspace conversion</span></div>
+<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160; <span class="comment">// img_mcu_x, img_mcu_y: &lt;=17 bits; comp[i].h and .v are &lt;=4 (checked</span></div>
+<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160; <span class="comment">// earlier) so these muls can&#39;t overflow with 32-bit ints (which we</span></div>
+<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160; <span class="comment">// require)</span></div>
+<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160; z-&gt;img_comp[i].w2 = z-&gt;img_mcu_x * z-&gt;img_comp[i].h * 8;</div>
+<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160; z-&gt;img_comp[i].h2 = z-&gt;img_mcu_y * z-&gt;img_comp[i].v * 8;</div>
+<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160; z-&gt;img_comp[i].coeff = 0;</div>
+<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160; z-&gt;img_comp[i].raw_coeff = 0;</div>
+<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160; z-&gt;img_comp[i].linebuf = NULL;</div>
+<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160; z-&gt;img_comp[i].raw_data =</div>
+<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160; stbi__malloc_mad2(z-&gt;img_comp[i].w2, z-&gt;img_comp[i].h2, 15);</div>
+<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_data == NULL)</div>
+<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160; <span class="keywordflow">return</span> stbi__free_jpeg_components(</div>
+<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160; z, i + 1, stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>));</div>
+<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160; <span class="comment">// align blocks for idct using mmx/sse</span></div>
+<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160; z-&gt;img_comp[i].data =</div>
+<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160; (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)(((<span class="keywordtype">size_t</span>)z-&gt;img_comp[i].raw_data + 15) &amp; ~15);</div>
+<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160; <span class="keywordflow">if</span> (z-&gt;progressive) {</div>
+<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160; <span class="comment">// w2, h2 are multiples of 8 (see above)</span></div>
+<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160; z-&gt;img_comp[i].coeff_w = z-&gt;img_comp[i].w2 / 8;</div>
+<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160; z-&gt;img_comp[i].coeff_h = z-&gt;img_comp[i].h2 / 8;</div>
+<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160; z-&gt;img_comp[i].raw_coeff = stbi__malloc_mad3(</div>
+<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160; z-&gt;img_comp[i].w2, z-&gt;img_comp[i].h2, <span class="keyword">sizeof</span>(<span class="keywordtype">short</span>), 15);</div>
+<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160; <span class="keywordflow">if</span> (z-&gt;img_comp[i].raw_coeff == NULL)</div>
+<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160; <span class="keywordflow">return</span> stbi__free_jpeg_components(</div>
+<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160; z, i + 1, stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>));</div>
+<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160; z-&gt;img_comp[i].coeff =</div>
+<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160; (<span class="keywordtype">short</span> *)(((<span class="keywordtype">size_t</span>)z-&gt;img_comp[i].raw_coeff + 15) &amp; ~15);</div>
+<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160; }</div>
+<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160; }</div>
+<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;</div>
+<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;}</div>
+<div class="line"><a name="l03464"></a><span class="lineno"> 3464</span>&#160;</div>
+<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;<span class="comment">// use comparisons since in some cases we handle more than one case (e.g. SOF)</span></div>
+<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;<span class="preprocessor">#define stbi__DNL(x) ((x) == 0xdc)</span></div>
+<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOI(x) ((x) == 0xd8)</span></div>
+<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__EOI(x) ((x) == 0xd9)</span></div>
+<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)</span></div>
+<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define stbi__SOS(x) ((x) == 0xda)</span></div>
+<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;<span class="preprocessor">#define stbi__SOF_progressive(x) ((x) == 0xc2)</span></div>
+<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__decode_jpeg_header(stbi__jpeg *z, <span class="keywordtype">int</span> scan)</div>
+<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;{</div>
+<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160; <span class="keywordtype">int</span> m;</div>
+<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160; z-&gt;jfif = 0;</div>
+<div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160; z-&gt;app14_color_transform = -1; <span class="comment">// valid values are 0,1,2</span></div>
+<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160; z-&gt;marker = STBI__MARKER_none; <span class="comment">// initialize cached marker to empty</span></div>
+<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160; m = stbi__get_marker(z);</div>
+<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160; <span class="keywordflow">if</span> (!stbi__SOI(m))</div>
+<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no SOI&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_type)</div>
+<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160; m = stbi__get_marker(z);</div>
+<div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160; <span class="keywordflow">while</span> (!stbi__SOF(m)) {</div>
+<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160; <span class="keywordflow">if</span> (!stbi__process_marker(z, m))</div>
+<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160; m = stbi__get_marker(z);</div>
+<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160; <span class="keywordflow">while</span> (m == STBI__MARKER_none) {</div>
+<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160; <span class="comment">// some files have extra padding after their blocks, so ok, we&#39;ll</span></div>
+<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160; <span class="comment">// scan</span></div>
+<div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(z-&gt;s))</div>
+<div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no SOF&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160; m = stbi__get_marker(z);</div>
+<div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160; }</div>
+<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160; }</div>
+<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160; z-&gt;progressive = stbi__SOF_progressive(m);</div>
+<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160; <span class="keywordflow">if</span> (!stbi__process_frame_header(z, scan))</div>
+<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;}</div>
+<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;</div>
+<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;<span class="comment">// decode image to YCbCr format</span></div>
+<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__decode_jpeg_image(stbi__jpeg *j)</div>
+<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;{</div>
+<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160; <span class="keywordtype">int</span> m;</div>
+<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160; <span class="keywordflow">for</span> (m = 0; m &lt; 4; m++) {</div>
+<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160; j-&gt;img_comp[m].raw_data = NULL;</div>
+<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160; j-&gt;img_comp[m].raw_coeff = NULL;</div>
+<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160; }</div>
+<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160; j-&gt;restart_interval = 0;</div>
+<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_header(j, STBI__SCAN_load))</div>
+<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160; m = stbi__get_marker(j);</div>
+<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160; <span class="keywordflow">while</span> (!stbi__EOI(m)) {</div>
+<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160; <span class="keywordflow">if</span> (stbi__SOS(m)) {</div>
+<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160; <span class="keywordflow">if</span> (!stbi__process_scan_header(j))</div>
+<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_entropy_coded_data(j))</div>
+<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160; <span class="keywordflow">if</span> (j-&gt;marker == STBI__MARKER_none) {</div>
+<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160; <span class="comment">// handle 0s at the end of image data from IP Kamera 9060</span></div>
+<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(j-&gt;s)) {</div>
+<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160; <span class="keywordtype">int</span> x = stbi__get8(j-&gt;s);</div>
+<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160; <span class="keywordflow">if</span> (x == 255) {</div>
+<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160; j-&gt;marker = stbi__get8(j-&gt;s);</div>
+<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160; }</div>
+<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160; }</div>
+<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160; <span class="comment">// if we reach eof without hitting a marker, stbi__get_marker()</span></div>
+<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160; <span class="comment">// below will fail and we&#39;ll eventually return 0</span></div>
+<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160; }</div>
+<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stbi__DNL(m)) {</div>
+<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160; <span class="keywordtype">int</span> Ld = stbi__get16be(j-&gt;s);</div>
+<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160; stbi__uint32 NL = stbi__get16be(j-&gt;s);</div>
+<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160; <span class="keywordflow">if</span> (Ld != 4)</div>
+<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160; stbi__err(<span class="stringliteral">&quot;bad DNL len&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160; <span class="keywordflow">if</span> (NL != j-&gt;s-&gt;img_y)</div>
+<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160; stbi__err(<span class="stringliteral">&quot;bad DNL height&quot;</span>, <span class="stringliteral">&quot;Corrupt JPEG&quot;</span>);</div>
+<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160; <span class="keywordflow">if</span> (!stbi__process_marker(j, m))</div>
+<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160; }</div>
+<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160; m = stbi__get_marker(j);</div>
+<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160; }</div>
+<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160; <span class="keywordflow">if</span> (j-&gt;progressive)</div>
+<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160; stbi__jpeg_finish(j);</div>
+<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;}</div>
<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;</div>
-<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160; stbi__resample res_comp[4];</div>
+<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;<span class="comment">// static jfif-centered resampling (across block boundaries)</span></div>
<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;</div>
-<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; decode_n; ++k) {</div>
-<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160; stbi__resample *r = &amp;res_comp[k];</div>
+<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;<span class="keyword">typedef</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *(*resample_row_func)(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in0, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in1,</div>
+<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160; <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs);</div>
<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;</div>
-<div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160; <span class="comment">// allocate line buffer big enough for upsampling off the edges</span></div>
-<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160; <span class="comment">// with upsample factor of 4</span></div>
-<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160; z-&gt;img_comp[k].linebuf = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc(z-&gt;s-&gt;img_x + 3);</div>
-<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160; <span class="keywordflow">if</span> (!z-&gt;img_comp[k].linebuf) { stbi__cleanup_jpeg(z); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>); }</div>
-<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;</div>
-<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160; r-&gt;hs = z-&gt;img_h_max / z-&gt;img_comp[k].h;</div>
-<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160; r-&gt;vs = z-&gt;img_v_max / z-&gt;img_comp[k].v;</div>
-<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160; r-&gt;ystep = r-&gt;vs &gt;&gt; 1;</div>
-<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160; r-&gt;w_lores = (z-&gt;s-&gt;img_x + r-&gt;hs-1) / r-&gt;hs;</div>
-<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160; r-&gt;ypos = 0;</div>
-<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160; r-&gt;line0 = r-&gt;line1 = z-&gt;img_comp[k].data;</div>
+<div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160;<span class="preprocessor">#define stbi__div4(x) ((stbi_uc)((x) &gt;&gt; 2))</span></div>
+<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *resample_row_1(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far,</div>
+<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160; <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;{</div>
+<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160; STBI_NOTUSED(out);</div>
+<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160; STBI_NOTUSED(in_far);</div>
+<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160; STBI_NOTUSED(w);</div>
+<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160; STBI_NOTUSED(hs);</div>
+<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160; <span class="keywordflow">return</span> in_near;</div>
+<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;}</div>
<div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;</div>
-<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160; if (r-&gt;hs == 1 &amp;&amp; r-&gt;vs == 1) r-&gt;resample = resample_row_1;</div>
-<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 1 &amp;&amp; r-&gt;vs == 2) r-&gt;resample = stbi__resample_row_v_2;</div>
-<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 2 &amp;&amp; r-&gt;vs == 1) r-&gt;resample = stbi__resample_row_h_2;</div>
-<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 2 &amp;&amp; r-&gt;vs == 2) r-&gt;resample = z-&gt;resample_row_hv_2_kernel;</div>
-<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160; <span class="keywordflow">else</span> r-&gt;resample = stbi__resample_row_generic;</div>
-<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160; }</div>
-<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;</div>
-<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160; <span class="comment">// can&#39;t error after this so, this is safe</span></div>
-<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160; output = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(n, z-&gt;s-&gt;img_x, z-&gt;s-&gt;img_y, 1);</div>
-<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160; <span class="keywordflow">if</span> (!output) { stbi__cleanup_jpeg(z); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>); }</div>
+<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_v_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;{</div>
+<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160; <span class="comment">// need to generate two samples vertically for every one in input</span></div>
+<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160; STBI_NOTUSED(hs);</div>
+<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w; ++i)</div>
+<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160; out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2);</div>
+<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;}</div>
<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;</div>
-<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160; <span class="comment">// now go ahead and resample</span></div>
-<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; z-&gt;s-&gt;img_y; ++j) {</div>
-<div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out = output + n * z-&gt;s-&gt;img_x * j;</div>
-<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; decode_n; ++k) {</div>
-<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160; stbi__resample *r = &amp;res_comp[k];</div>
-<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160; <span class="keywordtype">int</span> y_bot = r-&gt;ystep &gt;= (r-&gt;vs &gt;&gt; 1);</div>
-<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160; coutput[k] = r-&gt;resample(z-&gt;img_comp[k].linebuf,</div>
-<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160; y_bot ? r-&gt;line1 : r-&gt;line0,</div>
-<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160; y_bot ? r-&gt;line0 : r-&gt;line1,</div>
-<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160; r-&gt;w_lores, r-&gt;hs);</div>
-<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160; <span class="keywordflow">if</span> (++r-&gt;ystep &gt;= r-&gt;vs) {</div>
-<div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160; r-&gt;ystep = 0;</div>
-<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160; r-&gt;line0 = r-&gt;line1;</div>
-<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160; <span class="keywordflow">if</span> (++r-&gt;ypos &lt; z-&gt;img_comp[k].y)</div>
-<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160; r-&gt;line1 += z-&gt;img_comp[k].w2;</div>
-<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160; }</div>
-<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160; }</div>
-<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160; <span class="keywordflow">if</span> (n &gt;= 3) {</div>
-<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y = coutput[0];</div>
-<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160; <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 3) {</div>
-<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160; <span class="keywordflow">if</span> (is_rgb) {</div>
-<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160; out[0] = y[i];</div>
-<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160; out[1] = coutput[1][i];</div>
-<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160; out[2] = coutput[2][i];</div>
-<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160; out[3] = 255;</div>
-<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160; out += n;</div>
-<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160; }</div>
-<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z-&gt;s-&gt;img_x, n);</div>
-<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160; }</div>
-<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4) {</div>
-<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160; <span class="keywordflow">if</span> (z-&gt;app14_color_transform == 0) { <span class="comment">// CMYK</span></div>
-<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
-<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160; out[0] = stbi__blinn_8x8(coutput[0][i], m);</div>
-<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160; out[1] = stbi__blinn_8x8(coutput[1][i], m);</div>
-<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160; out[2] = stbi__blinn_8x8(coutput[2][i], m);</div>
-<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160; out[3] = 255;</div>
-<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160; out += n;</div>
-<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160; }</div>
-<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;app14_color_transform == 2) { <span class="comment">// YCCK</span></div>
-<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z-&gt;s-&gt;img_x, n);</div>
-<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
-<div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160; out[0] = stbi__blinn_8x8(255 - out[0], m);</div>
-<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160; out[1] = stbi__blinn_8x8(255 - out[1], m);</div>
-<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160; out[2] = stbi__blinn_8x8(255 - out[2], m);</div>
-<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160; out += n;</div>
-<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160; }</div>
-<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// YCbCr + alpha? Ignore the fourth channel for now</span></div>
-<div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z-&gt;s-&gt;img_x, n);</div>
-<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160; }</div>
-<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160; out[0] = out[1] = out[2] = y[i];</div>
-<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160; out[3] = 255; <span class="comment">// not used if n==3</span></div>
-<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160; out += n;</div>
-<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160; }</div>
-<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160; <span class="keywordflow">if</span> (is_rgb) {</div>
-<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160; <span class="keywordflow">if</span> (n == 1)</div>
-<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i)</div>
-<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160; *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);</div>
-<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i, out += 2) {</div>
-<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160; out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);</div>
-<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160; out[1] = 255;</div>
-<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160; }</div>
-<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160; }</div>
-<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4 &amp;&amp; z-&gt;app14_color_transform == 0) {</div>
-<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
-<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> r = stbi__blinn_8x8(coutput[0][i], m);</div>
-<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> g = stbi__blinn_8x8(coutput[1][i], m);</div>
-<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> b = stbi__blinn_8x8(coutput[2][i], m);</div>
-<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160; out[0] = stbi__compute_y(r, g, b);</div>
-<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160; out[1] = 255;</div>
-<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160; out += n;</div>
-<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160; }</div>
-<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4 &amp;&amp; z-&gt;app14_color_transform == 2) {</div>
-<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160; out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]);</div>
-<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160; out[1] = 255;</div>
-<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160; out += n;</div>
-<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160; }</div>
-<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y = coutput[0];</div>
-<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160; <span class="keywordflow">if</span> (n == 1)</div>
-<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) out[i] = y[i];</div>
-<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; z-&gt;s-&gt;img_x; ++i) *out++ = y[i], *out++ = 255;</div>
-<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160; }</div>
-<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160; }</div>
-<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160; }</div>
-<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160; stbi__cleanup_jpeg(z);</div>
-<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160; *out_x = z-&gt;s-&gt;img_x;</div>
-<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160; *out_y = z-&gt;s-&gt;img_y;</div>
-<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160; <span class="keywordflow">if</span> (comp) *comp = z-&gt;s-&gt;img_n &gt;= 3 ? 3 : 1; <span class="comment">// report original components, not output</span></div>
-<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160; <span class="keywordflow">return</span> output;</div>
-<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160; }</div>
-<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;}</div>
-<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;</div>
-<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__jpeg_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;{</div>
-<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* result;</div>
-<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160; stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg));</div>
-<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160; j-&gt;s = s;</div>
-<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160; stbi__setup_jpeg(j);</div>
-<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160; result = load_jpeg_image(j, x,y,comp,req_comp);</div>
-<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160; STBI_FREE(j);</div>
-<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;}</div>
-<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;</div>
-<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_test(stbi__context *s)</div>
-<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;{</div>
-<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160; <span class="keywordtype">int</span> r;</div>
-<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160; stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg));</div>
-<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160; j-&gt;s = s;</div>
-<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160; stbi__setup_jpeg(j);</div>
-<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160; r = stbi__decode_jpeg_header(j, STBI__SCAN_type);</div>
-<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160; STBI_FREE(j);</div>
-<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;}</div>
-<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;</div>
-<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info_raw(stbi__jpeg *j, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;{</div>
-<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {</div>
-<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160; stbi__rewind( j-&gt;s );</div>
-<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160; }</div>
-<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160; <span class="keywordflow">if</span> (x) *x = j-&gt;s-&gt;img_x;</div>
-<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160; <span class="keywordflow">if</span> (y) *y = j-&gt;s-&gt;img_y;</div>
-<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160; <span class="keywordflow">if</span> (comp) *comp = j-&gt;s-&gt;img_n &gt;= 3 ? 3 : 1;</div>
-<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;}</div>
-<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;</div>
-<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;{</div>
-<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160; <span class="keywordtype">int</span> result;</div>
-<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160; stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg)));</div>
-<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160; j-&gt;s = s;</div>
-<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160; result = stbi__jpeg_info_raw(j, x, y, comp);</div>
-<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160; STBI_FREE(j);</div>
-<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;}</div>
-<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;<span class="comment">// public domain zlib decode v0.2 Sean Barrett 2006-11-18</span></div>
-<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;<span class="comment">// simple implementation</span></div>
-<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;<span class="comment">// - all input must be provided in an upfront buffer</span></div>
-<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;<span class="comment">// - all output is written to a single output buffer (can malloc/realloc)</span></div>
-<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;<span class="comment">// performance</span></div>
-<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;<span class="comment">// - fast huffman</span></div>
-<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;</div>
-<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;<span class="preprocessor">#ifndef STBI_NO_ZLIB</span></div>
-<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;<span class="comment">// fast-way is faster to check than jpeg huffman, but slow way is slower</span></div>
-<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;<span class="preprocessor">#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables</span></div>
-<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__ZFAST_MASK ((1 &lt;&lt; STBI__ZFAST_BITS) - 1)</span></div>
-<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;<span class="comment">// zlib-style huffman encoding</span></div>
-<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;<span class="comment">// (jpegs packs from left, zlib from right, so can&#39;t share code)</span></div>
-<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;{</div>
-<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160; stbi__uint16 fast[1 &lt;&lt; STBI__ZFAST_BITS];</div>
-<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160; stbi__uint16 firstcode[16];</div>
-<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160; <span class="keywordtype">int</span> maxcode[17];</div>
-<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160; stbi__uint16 firstsymbol[16];</div>
-<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size[288];</div>
-<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160; stbi__uint16 value[288];</div>
-<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;} stbi__zhuffman;</div>
-<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;</div>
-<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bitreverse16(<span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;{</div>
-<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160; n = ((n &amp; 0xAAAA) &gt;&gt; 1) | ((n &amp; 0x5555) &lt;&lt; 1);</div>
-<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160; n = ((n &amp; 0xCCCC) &gt;&gt; 2) | ((n &amp; 0x3333) &lt;&lt; 2);</div>
-<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160; n = ((n &amp; 0xF0F0) &gt;&gt; 4) | ((n &amp; 0x0F0F) &lt;&lt; 4);</div>
-<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160; n = ((n &amp; 0xFF00) &gt;&gt; 8) | ((n &amp; 0x00FF) &lt;&lt; 8);</div>
-<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160; <span class="keywordflow">return</span> n;</div>
-<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;}</div>
-<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;</div>
-<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bit_reverse(<span class="keywordtype">int</span> v, <span class="keywordtype">int</span> bits)</div>
-<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;{</div>
-<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160; STBI_ASSERT(bits &lt;= 16);</div>
-<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160; <span class="comment">// to bit reverse n bits, reverse 16 and shift</span></div>
-<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160; <span class="comment">// e.g. 11 bits, bit reverse and shift away 5</span></div>
-<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160; <span class="keywordflow">return</span> stbi__bitreverse16(v) &gt;&gt; (16-bits);</div>
-<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;}</div>
-<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;</div>
-<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zbuild_huffman(stbi__zhuffman *z, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *sizelist, <span class="keywordtype">int</span> num)</div>
-<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;{</div>
-<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160; <span class="keywordtype">int</span> i,k=0;</div>
-<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160; <span class="keywordtype">int</span> code, next_code[16], sizes[17];</div>
-<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;</div>
-<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160; <span class="comment">// DEFLATE spec for generating codes</span></div>
-<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160; memset(sizes, 0, <span class="keyword">sizeof</span>(sizes));</div>
-<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160; memset(z-&gt;fast, 0, <span class="keyword">sizeof</span>(z-&gt;fast));</div>
-<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; num; ++i)</div>
-<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160; ++sizes[sizelist[i]];</div>
-<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160; sizes[0] = 0;</div>
-<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160; <span class="keywordflow">for</span> (i=1; i &lt; 16; ++i)</div>
-<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160; <span class="keywordflow">if</span> (sizes[i] &gt; (1 &lt;&lt; i))</div>
-<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad sizes&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160; code = 0;</div>
-<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160; <span class="keywordflow">for</span> (i=1; i &lt; 16; ++i) {</div>
-<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160; next_code[i] = code;</div>
-<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160; z-&gt;firstcode[i] = (stbi__uint16) code;</div>
-<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160; z-&gt;firstsymbol[i] = (stbi__uint16) k;</div>
-<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160; code = (code + sizes[i]);</div>
-<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160; <span class="keywordflow">if</span> (sizes[i])</div>
-<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160; <span class="keywordflow">if</span> (code-1 &gt;= (1 &lt;&lt; i)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160; z-&gt;maxcode[i] = code &lt;&lt; (16-i); <span class="comment">// preshift for inner loop</span></div>
-<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160; code &lt;&lt;= 1;</div>
-<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160; k += sizes[i];</div>
-<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160; }</div>
-<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160; z-&gt;maxcode[16] = 0x10000; <span class="comment">// sentinel</span></div>
-<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; num; ++i) {</div>
-<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160; <span class="keywordtype">int</span> s = sizelist[i];</div>
-<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160; <span class="keywordflow">if</span> (s) {</div>
-<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160; <span class="keywordtype">int</span> c = next_code[s] - z-&gt;firstcode[s] + z-&gt;firstsymbol[s];</div>
-<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160; stbi__uint16 fastv = (stbi__uint16) ((s &lt;&lt; 9) | i);</div>
-<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160; z-&gt;size [c] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> ) s;</div>
-<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160; z-&gt;value[c] = (stbi__uint16) i;</div>
-<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160; <span class="keywordflow">if</span> (s &lt;= STBI__ZFAST_BITS) {</div>
-<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160; <span class="keywordtype">int</span> j = stbi__bit_reverse(next_code[s],s);</div>
-<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160; <span class="keywordflow">while</span> (j &lt; (1 &lt;&lt; STBI__ZFAST_BITS)) {</div>
-<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160; z-&gt;fast[j] = fastv;</div>
-<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160; j += (1 &lt;&lt; s);</div>
-<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160; }</div>
-<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160; }</div>
-<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160; ++next_code[s];</div>
-<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160; }</div>
-<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160; }</div>
-<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;}</div>
-<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;</div>
-<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;<span class="comment">// zlib-from-memory implementation for PNG reading</span></div>
-<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;<span class="comment">// because PNG allows splitting the zlib stream arbitrarily,</span></div>
-<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;<span class="comment">// and it&#39;s annoying structurally to have PNG call ZLIB call PNG,</span></div>
-<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;<span class="comment">// we require PNG read all the IDATs and combine them into a single</span></div>
-<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;<span class="comment">// memory buffer</span></div>
-<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;</div>
-<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;{</div>
-<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *zbuffer, *zbuffer_end;</div>
-<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160; <span class="keywordtype">int</span> num_bits;</div>
-<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160; stbi__uint32 code_buffer;</div>
-<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;</div>
-<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160; <span class="keywordtype">char</span> *zout;</div>
-<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160; <span class="keywordtype">char</span> *zout_start;</div>
-<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160; <span class="keywordtype">char</span> *zout_end;</div>
-<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160; <span class="keywordtype">int</span> z_expandable;</div>
+<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_h_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160;{</div>
+<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160; <span class="comment">// need to generate two samples horizontally for every one in input</span></div>
+<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *input = in_near;</div>
+<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;</div>
+<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
+<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160; <span class="comment">// if only one sample, can&#39;t do any interpolation</span></div>
+<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160; out[0] = out[1] = input[0];</div>
+<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160; }</div>
+<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;</div>
+<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160; out[0] = input[0];</div>
+<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160; out[1] = stbi__div4(input[0] * 3 + input[1] + 2);</div>
+<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt; w - 1; ++i) {</div>
+<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160; <span class="keywordtype">int</span> n = 3 * input[i] + 2;</div>
+<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160; out[i * 2 + 0] = stbi__div4(n + input[i - 1]);</div>
+<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160; out[i * 2 + 1] = stbi__div4(n + input[i + 1]);</div>
+<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160; }</div>
+<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160; out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2);</div>
+<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160; out[i * 2 + 1] = input[w - 1];</div>
+<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;</div>
+<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160; STBI_NOTUSED(in_far);</div>
+<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160; STBI_NOTUSED(hs);</div>
+<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;</div>
+<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;}</div>
+<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;</div>
+<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;<span class="preprocessor">#define stbi__div16(x) ((stbi_uc)((x) &gt;&gt; 4))</span></div>
+<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_hv_2(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;{</div>
+<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160; <span class="comment">// need to generate 2x2 samples for every one in input</span></div>
+<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160; <span class="keywordtype">int</span> i, t0, t1;</div>
+<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
+<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160; out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);</div>
+<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160; }</div>
+<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160;</div>
+<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160; t1 = 3 * in_near[0] + in_far[0];</div>
+<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160; out[0] = stbi__div4(t1 + 2);</div>
+<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt; w; ++i) {</div>
+<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160; t0 = t1;</div>
+<div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160; t1 = 3 * in_near[i] + in_far[i];</div>
+<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160; out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);</div>
+<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160; out[i * 2] = stbi__div16(3 * t1 + t0 + 8);</div>
+<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160; }</div>
+<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160; out[w * 2 - 1] = stbi__div4(t1 + 2);</div>
+<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;</div>
+<div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160; STBI_NOTUSED(hs);</div>
+<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;</div>
+<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;}</div>
+<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;</div>
+<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2) || defined(STBI_NEON)</span></div>
+<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_hv_2_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;{</div>
+<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160; <span class="comment">// need to generate 2x2 samples for every one in input</span></div>
+<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160; <span class="keywordtype">int</span> i = 0, t0, t1;</div>
+<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;</div>
+<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160; <span class="keywordflow">if</span> (w == 1) {</div>
+<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160; out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2);</div>
+<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160; }</div>
+<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160;</div>
+<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160; t1 = 3 * in_near[0] + in_far[0];</div>
+<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160; <span class="comment">// process groups of 8 pixels for as long as we can.</span></div>
+<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160; <span class="comment">// note we can&#39;t handle the last pixel in a row in this loop</span></div>
+<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160; <span class="comment">// because we need to handle the filter boundary conditions.</span></div>
+<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160; <span class="keywordflow">for</span> (; i &lt; ((w - 1) &amp; ~7); i += 8) {</div>
+<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2)</span></div>
+<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;<span class="preprocessor"></span> <span class="comment">// load and perform the vertical filtering pass</span></div>
+<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160; <span class="comment">// this uses 3*x + y = 4*x + (y - x)</span></div>
+<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160; __m128i zero = _mm_setzero_si128();</div>
+<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160; __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i));</div>
+<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160; __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i));</div>
+<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160; __m128i farw = _mm_unpacklo_epi8(farb, zero);</div>
+<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160; __m128i nearw = _mm_unpacklo_epi8(nearb, zero);</div>
+<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160; __m128i diff = _mm_sub_epi16(farw, nearw);</div>
+<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160; __m128i nears = _mm_slli_epi16(nearw, 2);</div>
+<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160; __m128i curr = _mm_add_epi16(nears, diff); <span class="comment">// current row</span></div>
+<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;</div>
+<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160; <span class="comment">// horizontal filter works the same based on shifted vers of current</span></div>
+<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160; <span class="comment">// row. &quot;prev&quot; is current row shifted right by 1 pixel; we need to</span></div>
+<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160; <span class="comment">// insert the previous pixel value (from t1).</span></div>
+<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160; <span class="comment">// &quot;next&quot; is current row shifted left by 1 pixel, with first pixel</span></div>
+<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160; <span class="comment">// of next block of 8 pixels added in.</span></div>
+<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160; __m128i prv0 = _mm_slli_si128(curr, 2);</div>
+<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160; __m128i nxt0 = _mm_srli_si128(curr, 2);</div>
+<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160; __m128i prev = _mm_insert_epi16(prv0, t1, 0);</div>
+<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160; __m128i next =</div>
+<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160; _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7);</div>
+<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;</div>
+<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160; <span class="comment">// horizontal filter, polyphase implementation since it&#39;s convenient:</span></div>
+<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160; <span class="comment">// even pixels = 3*cur + prev = cur*4 + (prev - cur)</span></div>
+<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160; <span class="comment">// odd pixels = 3*cur + next = cur*4 + (next - cur)</span></div>
+<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160; <span class="comment">// note the shared term.</span></div>
+<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160; __m128i bias = _mm_set1_epi16(8);</div>
+<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160; __m128i curs = _mm_slli_epi16(curr, 2);</div>
+<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160; __m128i prvd = _mm_sub_epi16(prev, curr);</div>
+<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160; __m128i nxtd = _mm_sub_epi16(next, curr);</div>
+<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160; __m128i curb = _mm_add_epi16(curs, bias);</div>
+<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160; __m128i even = _mm_add_epi16(prvd, curb);</div>
+<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160; __m128i odd = _mm_add_epi16(nxtd, curb);</div>
+<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;</div>
+<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160; <span class="comment">// interleave even and odd pixels, then undo scaling.</span></div>
+<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160; __m128i int0 = _mm_unpacklo_epi16(even, odd);</div>
+<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160; __m128i int1 = _mm_unpackhi_epi16(even, odd);</div>
+<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160; __m128i de0 = _mm_srli_epi16(int0, 4);</div>
+<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160; __m128i de1 = _mm_srli_epi16(int1, 4);</div>
+<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;</div>
+<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160; <span class="comment">// pack and write output</span></div>
+<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160; __m128i outv = _mm_packus_epi16(de0, de1);</div>
+<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160; _mm_storeu_si128((__m128i *)(out + i * 2), outv);</div>
+<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;<span class="preprocessor">#elif defined(STBI_NEON)</span></div>
+<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;<span class="preprocessor"></span> <span class="comment">// load and perform the vertical filtering pass</span></div>
+<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160; <span class="comment">// this uses 3*x + y = 4*x + (y - x)</span></div>
+<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160; uint8x8_t farb = vld1_u8(in_far + i);</div>
+<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160; uint8x8_t nearb = vld1_u8(in_near + i);</div>
+<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160; int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));</div>
+<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160; int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));</div>
+<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160; int16x8_t curr = vaddq_s16(nears, diff); <span class="comment">// current row</span></div>
+<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;</div>
+<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160; <span class="comment">// horizontal filter works the same based on shifted vers of current</span></div>
+<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160; <span class="comment">// row. &quot;prev&quot; is current row shifted right by 1 pixel; we need to</span></div>
+<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160; <span class="comment">// insert the previous pixel value (from t1).</span></div>
+<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160; <span class="comment">// &quot;next&quot; is current row shifted left by 1 pixel, with first pixel</span></div>
+<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160; <span class="comment">// of next block of 8 pixels added in.</span></div>
+<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160; int16x8_t prv0 = vextq_s16(curr, curr, 7);</div>
+<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160; int16x8_t nxt0 = vextq_s16(curr, curr, 1);</div>
+<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160; int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);</div>
+<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160; int16x8_t next =</div>
+<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160; vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7);</div>
+<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;</div>
+<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160; <span class="comment">// horizontal filter, polyphase implementation since it&#39;s convenient:</span></div>
+<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160; <span class="comment">// even pixels = 3*cur + prev = cur*4 + (prev - cur)</span></div>
+<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160; <span class="comment">// odd pixels = 3*cur + next = cur*4 + (next - cur)</span></div>
+<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160; <span class="comment">// note the shared term.</span></div>
+<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160; int16x8_t curs = vshlq_n_s16(curr, 2);</div>
+<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160; int16x8_t prvd = vsubq_s16(prev, curr);</div>
+<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160; int16x8_t nxtd = vsubq_s16(next, curr);</div>
+<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160; int16x8_t even = vaddq_s16(curs, prvd);</div>
+<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160; int16x8_t odd = vaddq_s16(curs, nxtd);</div>
+<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;</div>
+<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160; <span class="comment">// undo scaling and round, then store with even/odd phases interleaved</span></div>
+<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160; uint8x8x2_t o;</div>
+<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160; o.val[0] = vqrshrun_n_s16(even, 4);</div>
+<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160; o.val[1] = vqrshrun_n_s16(odd, 4);</div>
+<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160; vst2_u8(out + i * 2, o);</div>
+<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160; <span class="comment">// &quot;previous&quot; value for next iter</span></div>
+<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160; t1 = 3 * in_near[i + 7] + in_far[i + 7];</div>
+<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160; }</div>
+<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;</div>
+<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160; t0 = t1;</div>
+<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160; t1 = 3 * in_near[i] + in_far[i];</div>
+<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160; out[i * 2] = stbi__div16(3 * t1 + t0 + 8);</div>
+<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;</div>
+<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160; <span class="keywordflow">for</span> (++i; i &lt; w; ++i) {</div>
+<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160; t0 = t1;</div>
+<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160; t1 = 3 * in_near[i] + in_far[i];</div>
+<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160; out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8);</div>
+<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160; out[i * 2] = stbi__div16(3 * t1 + t0 + 8);</div>
+<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160; }</div>
+<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160; out[w * 2 - 1] = stbi__div4(t1 + 2);</div>
+<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;</div>
+<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160; STBI_NOTUSED(hs);</div>
+<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;</div>
+<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;}</div>
+<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__resample_row_generic(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_near,</div>
+<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in_far, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> hs)</div>
+<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;{</div>
+<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160; <span class="comment">// resample with nearest-neighbor</span></div>
+<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160; STBI_NOTUSED(in_far);</div>
+<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w; ++i)</div>
+<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; hs; ++j)</div>
+<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160; out[i * hs + j] = in_near[i];</div>
+<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;}</div>
+<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;</div>
+<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;<span class="comment">// this is a reduced-precision calculation of YCbCr-to-RGB introduced</span></div>
+<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;<span class="comment">// to make sure the code produces the same results in both SIMD and scalar</span></div>
+<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;<span class="preprocessor">#define stbi__float2fixed(x) (((int)((x)*4096.0f + 0.5f)) &lt;&lt; 8)</span></div>
+<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__YCbCr_to_RGB_row(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y,</div>
+<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160; <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcb, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pcr,</div>
+<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160; <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step)</div>
+<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;{</div>
+<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; count; ++i) {</div>
+<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160; <span class="keywordtype">int</span> y_fixed = (y[i] &lt;&lt; 20) + (1 &lt;&lt; 19); <span class="comment">// rounding</span></div>
+<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160; <span class="keywordtype">int</span> r, g, b;</div>
+<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160; <span class="keywordtype">int</span> cr = pcr[i] - 128;</div>
+<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160; <span class="keywordtype">int</span> cb = pcb[i] - 128;</div>
+<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160; r = y_fixed + cr * stbi__float2fixed(1.40200f);</div>
+<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160; g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) +</div>
+<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160; ((cb * -stbi__float2fixed(0.34414f)) &amp; 0xffff0000);</div>
+<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160; b = y_fixed + cb * stbi__float2fixed(1.77200f);</div>
+<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160; r &gt;&gt;= 20;</div>
+<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160; g &gt;&gt;= 20;</div>
+<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160; b &gt;&gt;= 20;</div>
+<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)r &gt; 255) {</div>
+<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160; <span class="keywordflow">if</span> (r &lt; 0)</div>
+<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160; r = 0;</div>
+<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160; r = 255;</div>
+<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160; }</div>
+<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)g &gt; 255) {</div>
+<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160; <span class="keywordflow">if</span> (g &lt; 0)</div>
+<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160; g = 0;</div>
+<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160; g = 255;</div>
+<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160; }</div>
+<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)b &gt; 255) {</div>
+<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160; <span class="keywordflow">if</span> (b &lt; 0)</div>
+<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160; b = 0;</div>
+<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160; b = 255;</div>
+<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160; }</div>
+<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)r;</div>
+<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)g;</div>
+<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)b;</div>
+<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160; out[3] = 255;</div>
+<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160; out += step;</div>
+<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160; }</div>
+<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;}</div>
+<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;</div>
+<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;<span class="preprocessor">#if defined(STBI_SSE2) || defined(STBI_NEON)</span></div>
+<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> stbi__YCbCr_to_RGB_simd(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *y,</div>
+<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *pcb, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *pcr,</div>
+<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160; <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> step)</div>
+<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;{</div>
+<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160; <span class="keywordtype">int</span> i = 0;</div>
+<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;</div>
+<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
+<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;<span class="preprocessor"></span> <span class="comment">// step == 3 is pretty ugly on the final interleave, and i&#39;m not convinced</span></div>
+<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160; <span class="comment">// it&#39;s useful in practice (you wouldn&#39;t use it for textures, for example).</span></div>
+<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160; <span class="comment">// so just accelerate step == 4 case.</span></div>
+<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160; <span class="keywordflow">if</span> (step == 4) {</div>
+<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160; <span class="comment">// this is a fairly straightforward implementation and not</span></div>
+<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160; <span class="comment">// super-optimized.</span></div>
+<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160; __m128i signflip = _mm_set1_epi8(-0x80);</div>
+<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160; __m128i cr_const0 = _mm_set1_epi16((<span class="keywordtype">short</span>)(1.40200f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160; __m128i cr_const1 = _mm_set1_epi16(-(<span class="keywordtype">short</span>)(0.71414f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160; __m128i cb_const0 = _mm_set1_epi16(-(<span class="keywordtype">short</span>)(0.34414f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160; __m128i cb_const1 = _mm_set1_epi16((<span class="keywordtype">short</span>)(1.77200f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160; __m128i y_bias = _mm_set1_epi8((<span class="keywordtype">char</span>)(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)128);</div>
+<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160; __m128i xw = _mm_set1_epi16(255); <span class="comment">// alpha channel</span></div>
<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;</div>
-<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160; stbi__zhuffman z_length, z_distance;</div>
-<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;} stbi__zbuf;</div>
-<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;</div>
-<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zget8(stbi__zbuf *z)</div>
-<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;{</div>
-<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160; <span class="keywordflow">if</span> (z-&gt;zbuffer &gt;= z-&gt;zbuffer_end) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160; <span class="keywordflow">return</span> *z-&gt;zbuffer++;</div>
-<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;}</div>
-<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;</div>
-<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__fill_bits(stbi__zbuf *z)</div>
-<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;{</div>
-<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160; STBI_ASSERT(z-&gt;code_buffer &lt; (1U &lt;&lt; z-&gt;num_bits));</div>
-<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160; z-&gt;code_buffer |= (<span class="keywordtype">unsigned</span> int) stbi__zget8(z) &lt;&lt; z-&gt;num_bits;</div>
-<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160; z-&gt;num_bits += 8;</div>
-<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160; } <span class="keywordflow">while</span> (z-&gt;num_bits &lt;= 24);</div>
-<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;}</div>
-<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160;</div>
-<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stbi__zreceive(stbi__zbuf *z, <span class="keywordtype">int</span> n)</div>
-<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;{</div>
-<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160; <span class="keywordflow">if</span> (z-&gt;num_bits &lt; n) stbi__fill_bits(z);</div>
-<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160; k = z-&gt;code_buffer &amp; ((1 &lt;&lt; n) - 1);</div>
-<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160; z-&gt;code_buffer &gt;&gt;= n;</div>
-<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160; z-&gt;num_bits -= n;</div>
-<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160; <span class="keywordflow">return</span> k;</div>
-<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;}</div>
-<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;</div>
-<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)</div>
-<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;{</div>
-<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160; <span class="keywordtype">int</span> b,s,k;</div>
-<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160; <span class="comment">// not resolved by fast table, so compute it the slow way</span></div>
-<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160; <span class="comment">// use jpeg approach, which requires MSbits at top</span></div>
-<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160; k = stbi__bit_reverse(a-&gt;code_buffer, 16);</div>
-<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160; <span class="keywordflow">for</span> (s=STBI__ZFAST_BITS+1; ; ++s)</div>
-<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160; <span class="keywordflow">if</span> (k &lt; z-&gt;maxcode[s])</div>
-<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160; <span class="keywordflow">if</span> (s == 16) <span class="keywordflow">return</span> -1; <span class="comment">// invalid code!</span></div>
-<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160; <span class="comment">// code size is s, so:</span></div>
-<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160; b = (k &gt;&gt; (16-s)) - z-&gt;firstcode[s] + z-&gt;firstsymbol[s];</div>
-<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160; STBI_ASSERT(z-&gt;size[b] == s);</div>
-<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160; a-&gt;code_buffer &gt;&gt;= s;</div>
-<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160; a-&gt;num_bits -= s;</div>
-<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160; <span class="keywordflow">return</span> z-&gt;value[b];</div>
-<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;}</div>
-<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;</div>
-<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)</div>
-<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;{</div>
-<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160; <span class="keywordtype">int</span> b,s;</div>
-<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160; <span class="keywordflow">if</span> (a-&gt;num_bits &lt; 16) stbi__fill_bits(a);</div>
-<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160; b = z-&gt;fast[a-&gt;code_buffer &amp; STBI__ZFAST_MASK];</div>
-<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160; <span class="keywordflow">if</span> (b) {</div>
-<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160; s = b &gt;&gt; 9;</div>
-<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160; a-&gt;code_buffer &gt;&gt;= s;</div>
-<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160; a-&gt;num_bits -= s;</div>
-<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160; <span class="keywordflow">return</span> b &amp; 511;</div>
-<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160; }</div>
-<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160; <span class="keywordflow">return</span> stbi__zhuffman_decode_slowpath(a, z);</div>
-<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;}</div>
-<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;</div>
-<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zexpand(stbi__zbuf *z, <span class="keywordtype">char</span> *zout, <span class="keywordtype">int</span> n) <span class="comment">// need to make room for n bytes</span></div>
-<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;{</div>
-<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160; <span class="keywordtype">char</span> *q;</div>
-<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160; <span class="keywordtype">int</span> cur, limit, old_limit;</div>
-<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160; z-&gt;zout = zout;</div>
-<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160; <span class="keywordflow">if</span> (!z-&gt;z_expandable) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;output buffer limit&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160; cur = (int) (z-&gt;zout - z-&gt;zout_start);</div>
-<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160; limit = old_limit = (int) (z-&gt;zout_end - z-&gt;zout_start);</div>
-<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160; <span class="keywordflow">while</span> (cur + n &gt; limit)</div>
-<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160; limit *= 2;</div>
-<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160; q = (<span class="keywordtype">char</span> *) STBI_REALLOC_SIZED(z-&gt;zout_start, old_limit, limit);</div>
-<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160; STBI_NOTUSED(old_limit);</div>
-<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160; <span class="keywordflow">if</span> (q == NULL) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160; z-&gt;zout_start = q;</div>
-<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160; z-&gt;zout = q + cur;</div>
-<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160; z-&gt;zout_end = q + limit;</div>
-<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;}</div>
-<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;</div>
-<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zlength_base[31] = {</div>
-<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160; 3,4,5,6,7,8,9,10,11,13,</div>
-<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160; 15,17,19,23,27,31,35,43,51,59,</div>
-<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160; 67,83,99,115,131,163,195,227,258,0,0 };</div>
-<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160;</div>
-<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zlength_extra[31]=</div>
-<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 };</div>
-<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;</div>
-<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,</div>
-<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0};</div>
+<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160; <span class="keywordflow">for</span> (; i + 7 &lt; count; i += 8) {</div>
+<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160; <span class="comment">// load</span></div>
+<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160; __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i));</div>
+<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160; __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i));</div>
+<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160; __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i));</div>
+<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160; __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); <span class="comment">// -128</span></div>
+<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160; __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); <span class="comment">// -128</span></div>
+<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;</div>
+<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160; <span class="comment">// unpack to short (and left-shift cr, cb by 8)</span></div>
+<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160; __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes);</div>
+<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160; __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);</div>
+<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160; __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);</div>
+<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;</div>
+<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160; <span class="comment">// color transform</span></div>
+<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160; __m128i yws = _mm_srli_epi16(yw, 4);</div>
+<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160; __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);</div>
+<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160; __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);</div>
+<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160; __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);</div>
+<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160; __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);</div>
+<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160; __m128i rws = _mm_add_epi16(cr0, yws);</div>
+<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160; __m128i gwt = _mm_add_epi16(cb0, yws);</div>
+<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160; __m128i bws = _mm_add_epi16(yws, cb1);</div>
+<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160; __m128i gws = _mm_add_epi16(gwt, cr1);</div>
+<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;</div>
+<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160; <span class="comment">// descale</span></div>
+<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160; __m128i rw = _mm_srai_epi16(rws, 4);</div>
+<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160; __m128i bw = _mm_srai_epi16(bws, 4);</div>
+<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160; __m128i gw = _mm_srai_epi16(gws, 4);</div>
+<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;</div>
+<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160; <span class="comment">// back to byte, set up for transpose</span></div>
+<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160; __m128i brb = _mm_packus_epi16(rw, bw);</div>
+<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160; __m128i gxb = _mm_packus_epi16(gw, xw);</div>
+<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;</div>
+<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160; <span class="comment">// transpose to interleave channels</span></div>
+<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160; __m128i t0 = _mm_unpacklo_epi8(brb, gxb);</div>
+<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160; __m128i t1 = _mm_unpackhi_epi8(brb, gxb);</div>
+<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160; __m128i o0 = _mm_unpacklo_epi16(t0, t1);</div>
+<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160; __m128i o1 = _mm_unpackhi_epi16(t0, t1);</div>
+<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;</div>
+<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160; <span class="comment">// store</span></div>
+<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160; _mm_storeu_si128((__m128i *)(out + 0), o0);</div>
+<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160; _mm_storeu_si128((__m128i *)(out + 16), o1);</div>
+<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160; out += 32;</div>
+<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160; }</div>
+<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160; }</div>
+<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
+<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;<span class="preprocessor"></span> <span class="comment">// in this version, step=3 support would be easy to add. but is there</span></div>
+<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160; <span class="comment">// demand?</span></div>
+<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160; <span class="keywordflow">if</span> (step == 4) {</div>
+<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160; <span class="comment">// this is a fairly straightforward implementation and not</span></div>
+<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160; <span class="comment">// super-optimized.</span></div>
+<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160; uint8x8_t signflip = vdup_n_u8(0x80);</div>
+<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160; int16x8_t cr_const0 = vdupq_n_s16((<span class="keywordtype">short</span>)(1.40200f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160; int16x8_t cr_const1 = vdupq_n_s16(-(<span class="keywordtype">short</span>)(0.71414f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160; int16x8_t cb_const0 = vdupq_n_s16(-(<span class="keywordtype">short</span>)(0.34414f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160; int16x8_t cb_const1 = vdupq_n_s16((<span class="keywordtype">short</span>)(1.77200f * 4096.0f + 0.5f));</div>
+<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;</div>
+<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160; <span class="keywordflow">for</span> (; i + 7 &lt; count; i += 8) {</div>
+<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160; <span class="comment">// load</span></div>
+<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160; uint8x8_t y_bytes = vld1_u8(y + i);</div>
+<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160; uint8x8_t cr_bytes = vld1_u8(pcr + i);</div>
+<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160; uint8x8_t cb_bytes = vld1_u8(pcb + i);</div>
+<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160; int8x8_t cr_biased =</div>
+<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160; vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));</div>
+<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160; int8x8_t cb_biased =</div>
+<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160; vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));</div>
+<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;</div>
+<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160; <span class="comment">// expand to s16</span></div>
+<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160; int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));</div>
+<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160; int16x8_t crw = vshll_n_s8(cr_biased, 7);</div>
+<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160; int16x8_t cbw = vshll_n_s8(cb_biased, 7);</div>
+<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;</div>
+<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160; <span class="comment">// color transform</span></div>
+<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160; int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);</div>
+<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160; int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);</div>
+<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160; int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);</div>
+<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160; int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);</div>
+<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160; int16x8_t rws = vaddq_s16(yws, cr0);</div>
+<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160; int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);</div>
+<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160; int16x8_t bws = vaddq_s16(yws, cb1);</div>
+<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;</div>
+<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160; <span class="comment">// undo scaling, round, convert to byte</span></div>
+<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160; uint8x8x4_t o;</div>
+<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160; o.val[0] = vqrshrun_n_s16(rws, 4);</div>
+<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160; o.val[1] = vqrshrun_n_s16(gws, 4);</div>
+<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160; o.val[2] = vqrshrun_n_s16(bws, 4);</div>
+<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160; o.val[3] = vdup_n_u8(255);</div>
<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;</div>
-<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zdist_extra[32] =</div>
-<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};</div>
-<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;</div>
-<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_huffman_block(stbi__zbuf *a)</div>
-<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;{</div>
-<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160; <span class="keywordtype">char</span> *zout = a-&gt;zout;</div>
-<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160; <span class="keywordflow">for</span>(;;) {</div>
-<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160; <span class="keywordtype">int</span> z = stbi__zhuffman_decode(a, &amp;a-&gt;z_length);</div>
-<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160; <span class="keywordflow">if</span> (z &lt; 256) {</div>
-<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160; <span class="keywordflow">if</span> (z &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// error in huffman codes</span></div>
-<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160; <span class="keywordflow">if</span> (zout &gt;= a-&gt;zout_end) {</div>
-<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, zout, 1)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160; zout = a-&gt;zout;</div>
-<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160; }</div>
-<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160; *zout++ = (char) z;</div>
-<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
-<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160; <span class="keywordtype">int</span> len,dist;</div>
-<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160; <span class="keywordflow">if</span> (z == 256) {</div>
-<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160; a-&gt;zout = zout;</div>
-<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160; }</div>
-<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160; z -= 257;</div>
-<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160; len = stbi__zlength_base[z];</div>
-<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160; <span class="keywordflow">if</span> (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]);</div>
-<div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160; z = stbi__zhuffman_decode(a, &amp;a-&gt;z_distance);</div>
-<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>&#160; <span class="keywordflow">if</span> (z &lt; 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>&#160; dist = stbi__zdist_base[z];</div>
-<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>&#160; <span class="keywordflow">if</span> (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]);</div>
-<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160; <span class="keywordflow">if</span> (zout - a-&gt;zout_start &lt; dist) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad dist&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160; <span class="keywordflow">if</span> (zout + len &gt; a-&gt;zout_end) {</div>
-<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, zout, len)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160; zout = a-&gt;zout;</div>
-<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160; }</div>
-<div class="line"><a name="l03960"></a><span class="lineno"> 3960</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) (zout - dist);</div>
-<div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160; <span class="keywordflow">if</span> (dist == 1) { <span class="comment">// run of one byte; common in images.</span></div>
-<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> v = *p;</div>
-<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160; <span class="keywordflow">if</span> (len) { <span class="keywordflow">do</span> *zout++ = v; <span class="keywordflow">while</span> (--len); }</div>
-<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160; <span class="keywordflow">if</span> (len) { <span class="keywordflow">do</span> *zout++ = *p++; <span class="keywordflow">while</span> (--len); }</div>
-<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160; }</div>
-<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160; }</div>
-<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160; }</div>
+<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160; <span class="comment">// store, interleaving r/g/b/a</span></div>
+<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160; vst4_u8(out, o);</div>
+<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160; out += 8 * 4;</div>
+<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160; }</div>
+<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160; }</div>
+<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160; <span class="keywordflow">for</span> (; i &lt; count; ++i) {</div>
+<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160; <span class="keywordtype">int</span> y_fixed = (y[i] &lt;&lt; 20) + (1 &lt;&lt; 19); <span class="comment">// rounding</span></div>
+<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160; <span class="keywordtype">int</span> r, g, b;</div>
+<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160; <span class="keywordtype">int</span> cr = pcr[i] - 128;</div>
+<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160; <span class="keywordtype">int</span> cb = pcb[i] - 128;</div>
+<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160; r = y_fixed + cr * stbi__float2fixed(1.40200f);</div>
+<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160; g = y_fixed + cr * -stbi__float2fixed(0.71414f) +</div>
+<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160; ((cb * -stbi__float2fixed(0.34414f)) &amp; 0xffff0000);</div>
+<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160; b = y_fixed + cb * stbi__float2fixed(1.77200f);</div>
+<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160; r &gt;&gt;= 20;</div>
+<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160; g &gt;&gt;= 20;</div>
+<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160; b &gt;&gt;= 20;</div>
+<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)r &gt; 255) {</div>
+<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160; <span class="keywordflow">if</span> (r &lt; 0)</div>
+<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160; r = 0;</div>
+<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160; r = 255;</div>
+<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160; }</div>
+<div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)g &gt; 255) {</div>
+<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>&#160; <span class="keywordflow">if</span> (g &lt; 0)</div>
+<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>&#160; g = 0;</div>
+<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160; g = 255;</div>
+<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160; }</div>
+<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)b &gt; 255) {</div>
+<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160; <span class="keywordflow">if</span> (b &lt; 0)</div>
+<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160; b = 0;</div>
+<div class="line"><a name="l03960"></a><span class="lineno"> 3960</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160; b = 255;</div>
+<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160; }</div>
+<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)r;</div>
+<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)g;</div>
+<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)b;</div>
+<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160; out[3] = 255;</div>
+<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160; out += step;</div>
+<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160; }</div>
<div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>&#160;}</div>
-<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;</div>
-<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_huffman_codes(stbi__zbuf *a)</div>
-<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;{</div>
-<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160; <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 };</div>
-<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160; stbi__zhuffman z_codelength;</div>
-<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lencodes[286+32+137];<span class="comment">//padding for maximum single op</span></div>
-<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> codelength_sizes[19];</div>
-<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160; <span class="keywordtype">int</span> i,n;</div>
+<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;<span class="comment">// set up the kernels</span></div>
+<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__setup_jpeg(stbi__jpeg *j)</div>
+<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160;{</div>
+<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160; j-&gt;idct_block_kernel = stbi__idct_block;</div>
+<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;</div>
+<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2;</div>
<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;</div>
-<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160; <span class="keywordtype">int</span> hlit = stbi__zreceive(a,5) + 257;</div>
-<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160; <span class="keywordtype">int</span> hdist = stbi__zreceive(a,5) + 1;</div>
-<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160; <span class="keywordtype">int</span> hclen = stbi__zreceive(a,4) + 4;</div>
-<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160; <span class="keywordtype">int</span> ntot = hlit + hdist;</div>
-<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;</div>
-<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160; memset(codelength_sizes, 0, <span class="keyword">sizeof</span>(codelength_sizes));</div>
-<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; hclen; ++i) {</div>
-<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160; <span class="keywordtype">int</span> s = stbi__zreceive(a,3);</div>
-<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160; codelength_sizes[length_dezigzag[i]] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) s;</div>
-<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160; }</div>
-<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;z_codelength, codelength_sizes, 19)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;</div>
-<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160; n = 0;</div>
-<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160; <span class="keywordflow">while</span> (n &lt; ntot) {</div>
-<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160; <span class="keywordtype">int</span> c = stbi__zhuffman_decode(a, &amp;z_codelength);</div>
-<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160; <span class="keywordflow">if</span> (c &lt; 0 || c &gt;= 19) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160; <span class="keywordflow">if</span> (c &lt; 16)</div>
-<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160; lencodes[n++] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) c;</div>
-<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fill = 0;</div>
-<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160; <span class="keywordflow">if</span> (c == 16) {</div>
-<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160; c = stbi__zreceive(a,2)+3;</div>
-<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160; <span class="keywordflow">if</span> (n == 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160; fill = lencodes[n-1];</div>
-<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == 17)</div>
-<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160; c = stbi__zreceive(a,3)+3;</div>
-<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160; STBI_ASSERT(c == 18);</div>
-<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160; c = stbi__zreceive(a,7)+11;</div>
-<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160; }</div>
-<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160; <span class="keywordflow">if</span> (ntot - n &lt; c) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160; memset(lencodes+n, fill, c);</div>
-<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160; n += c;</div>
-<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160; }</div>
-<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160; }</div>
-<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160; <span class="keywordflow">if</span> (n != ntot) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_length, lencodes, hlit)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_distance, lencodes+hlit, hdist)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;}</div>
-<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;</div>
-<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_uncompressed_block(stbi__zbuf *a)</div>
-<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;{</div>
-<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> header[4];</div>
-<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160; <span class="keywordtype">int</span> len,nlen,k;</div>
-<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160; <span class="keywordflow">if</span> (a-&gt;num_bits &amp; 7)</div>
-<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160; stbi__zreceive(a, a-&gt;num_bits &amp; 7); <span class="comment">// discard</span></div>
-<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160; <span class="comment">// drain the bit-packed data into header</span></div>
-<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160; k = 0;</div>
-<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160; <span class="keywordflow">while</span> (a-&gt;num_bits &gt; 0) {</div>
-<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160; header[k++] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) (a-&gt;code_buffer &amp; 255); <span class="comment">// suppress MSVC run-time check</span></div>
-<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160; a-&gt;code_buffer &gt;&gt;= 8;</div>
-<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160; a-&gt;num_bits -= 8;</div>
-<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160; }</div>
-<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160; STBI_ASSERT(a-&gt;num_bits == 0);</div>
-<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160; <span class="comment">// now fill header the normal way</span></div>
-<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160; <span class="keywordflow">while</span> (k &lt; 4)</div>
-<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160; header[k++] = stbi__zget8(a);</div>
-<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160; len = header[1] * 256 + header[0];</div>
-<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160; nlen = header[3] * 256 + header[2];</div>
-<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160; <span class="keywordflow">if</span> (nlen != (len ^ 0xffff)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;zlib corrupt&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160; <span class="keywordflow">if</span> (a-&gt;zbuffer + len &gt; a-&gt;zbuffer_end) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;read past buffer&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160; <span class="keywordflow">if</span> (a-&gt;zout + len &gt; a-&gt;zout_end)</div>
-<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, a-&gt;zout, len)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160; memcpy(a-&gt;zout, a-&gt;zbuffer, len);</div>
-<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160; a-&gt;zbuffer += len;</div>
-<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160; a-&gt;zout += len;</div>
-<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;}</div>
-<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;</div>
-<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_zlib_header(stbi__zbuf *a)</div>
-<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160;{</div>
-<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160; <span class="keywordtype">int</span> cmf = stbi__zget8(a);</div>
-<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160; <span class="keywordtype">int</span> cm = cmf &amp; 15;</div>
-<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160; <span class="comment">/* int cinfo = cmf &gt;&gt; 4; */</span></div>
-<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160; <span class="keywordtype">int</span> flg = stbi__zget8(a);</div>
-<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160; <span class="keywordflow">if</span> ((cmf*256+flg) % 31 != 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad zlib header&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// zlib spec</span></div>
-<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160; <span class="keywordflow">if</span> (flg &amp; 32) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no preset dict&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// preset dictionary not allowed in png</span></div>
-<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160; <span class="keywordflow">if</span> (cm != 8) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad compression&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// DEFLATE required for png</span></div>
-<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160; <span class="comment">// window = 1 &lt;&lt; (8 + cinfo)... but who cares, we fully buffer output</span></div>
-<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160;}</div>
-<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;</div>
-<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zdefault_length[288] =</div>
-<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160;{</div>
-<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160; 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,</div>
-<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160; 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,</div>
-<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160; 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,</div>
-<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160; 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,</div>
-<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160; 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,</div>
-<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160; 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,</div>
-<div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160; 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,</div>
-<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160; 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,</div>
-<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160; 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8</div>
-<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;};</div>
-<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zdefault_distance[32] =</div>
-<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;{</div>
-<div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160; 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5</div>
-<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;};</div>
-<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;<span class="comment">Init algorithm:</span></div>
-<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;<span class="comment">{</span></div>
-<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;<span class="comment"> int i; // use &lt;= to match clearly with spec</span></div>
-<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;<span class="comment"> for (i=0; i &lt;= 143; ++i) stbi__zdefault_length[i] = 8;</span></div>
-<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;<span class="comment"> for ( ; i &lt;= 255; ++i) stbi__zdefault_length[i] = 9;</span></div>
-<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;<span class="comment"> for ( ; i &lt;= 279; ++i) stbi__zdefault_length[i] = 7;</span></div>
-<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;<span class="comment"> for ( ; i &lt;= 287; ++i) stbi__zdefault_length[i] = 8;</span></div>
-<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;<span class="comment"> for (i=0; i &lt;= 31; ++i) stbi__zdefault_distance[i] = 5;</span></div>
-<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;<span class="comment">}</span></div>
-<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;</div>
-<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_zlib(stbi__zbuf *a, <span class="keywordtype">int</span> parse_header)</div>
-<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;{</div>
-<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160; <span class="keywordtype">int</span> <span class="keyword">final</span>, type;</div>
-<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160; <span class="keywordflow">if</span> (parse_header)</div>
-<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_zlib_header(a)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160; a-&gt;num_bits = 0;</div>
-<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160; a-&gt;code_buffer = 0;</div>
-<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160; <span class="keyword">final</span> = stbi__zreceive(a,1);</div>
-<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160; type = stbi__zreceive(a,2);</div>
-<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160; <span class="keywordflow">if</span> (type == 0) {</div>
-<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_uncompressed_block(a)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == 3) {</div>
-<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160; <span class="keywordflow">if</span> (type == 1) {</div>
-<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160; <span class="comment">// use fixed code lengths</span></div>
-<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_length , stbi__zdefault_length , 288)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_distance, stbi__zdefault_distance, 32)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_huffman_codes(a)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160; }</div>
-<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_huffman_block(a)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160; }</div>
-<div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160; } <span class="keywordflow">while</span> (!<span class="keyword">final</span>);</div>
-<div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;}</div>
-<div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160;</div>
-<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__do_zlib(stbi__zbuf *a, <span class="keywordtype">char</span> *obuf, <span class="keywordtype">int</span> olen, <span class="keywordtype">int</span> exp, <span class="keywordtype">int</span> parse_header)</div>
-<div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;{</div>
-<div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160; a-&gt;zout_start = obuf;</div>
-<div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160; a-&gt;zout = obuf;</div>
-<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160; a-&gt;zout_end = obuf + olen;</div>
-<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160; a-&gt;z_expandable = exp;</div>
-<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;</div>
-<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160; <span class="keywordflow">return</span> stbi__parse_zlib(a, parse_header);</div>
-<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;}</div>
-<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;</div>
-<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen)</div>
-<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;{</div>
-<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160; stbi__zbuf a;</div>
-<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *) stbi__malloc(initial_size);</div>
-<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160; <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer;</div>
-<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer + len;</div>
-<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, initial_size, 1, 1)) {</div>
-<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160; <span class="keywordflow">if</span> (outlen) *outlen = (int) (a.zout - a.zout_start);</div>
-<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
-<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160; STBI_FREE(a.zout_start);</div>
-<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160; <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160; }</div>
-<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160;}</div>
-<div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160;</div>
-<div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e">stbi_zlib_decode_malloc</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen)</div>
-<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;{</div>
-<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(buffer, len, 16384, outlen);</div>
-<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;}</div>
-<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160;</div>
-<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen, <span class="keywordtype">int</span> parse_header)</div>
-<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;{</div>
-<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160; stbi__zbuf a;</div>
-<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *) stbi__malloc(initial_size);</div>
-<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160; <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer;</div>
-<div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer + len;</div>
-<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, initial_size, 1, parse_header)) {</div>
-<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160; <span class="keywordflow">if</span> (outlen) *outlen = (int) (a.zout - a.zout_start);</div>
-<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
-<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160; STBI_FREE(a.zout_start);</div>
-<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160; <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160; }</div>
-<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;}</div>
-<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160;</div>
-<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48">stbi_zlib_decode_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen, <span class="keywordtype">char</span> <span class="keyword">const</span> *ibuffer, <span class="keywordtype">int</span> ilen)</div>
-<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;{</div>
-<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160; stbi__zbuf a;</div>
-<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) ibuffer;</div>
-<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) ibuffer + ilen;</div>
-<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, obuffer, olen, 0, 1))</div>
-<div class="line"><a name="l04172"></a><span class="lineno"> 4172</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) (a.zout - a.zout_start);</div>
-<div class="line"><a name="l04173"></a><span class="lineno"> 4173</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160; <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l04175"></a><span class="lineno"> 4175</span>&#160;}</div>
-<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160;</div>
-<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a7fbd65c83495f13f22469fe493775739">stbi_zlib_decode_noheader_malloc</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen)</div>
-<div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>&#160;{</div>
-<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160; stbi__zbuf a;</div>
-<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *) stbi__malloc(16384);</div>
-<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160; <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer;</div>
-<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) buffer+len;</div>
-<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, 16384, 1, 0)) {</div>
-<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160; <span class="keywordflow">if</span> (outlen) *outlen = (int) (a.zout - a.zout_start);</div>
-<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
-<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160; STBI_FREE(a.zout_start);</div>
-<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160; <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160; }</div>
-<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;}</div>
-<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160;</div>
-<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e">stbi_zlib_decode_noheader_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen, <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen)</div>
-<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;{</div>
-<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160; stbi__zbuf a;</div>
-<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) ibuffer;</div>
-<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) ibuffer + ilen;</div>
-<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, obuffer, olen, 0, 0))</div>
-<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) (a.zout - a.zout_start);</div>
-<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160; <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;}</div>
-<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;<span class="comment">// public domain &quot;baseline&quot; PNG decoder v0.10 Sean Barrett 2006-11-18</span></div>
-<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160;<span class="comment">// simple implementation</span></div>
-<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160;<span class="comment">// - only 8-bit samples</span></div>
-<div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160;<span class="comment">// - no CRC checking</span></div>
-<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;<span class="comment">// - allocates lots of intermediate memory</span></div>
-<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;<span class="comment">// - avoids problem of streaming data between subsystems</span></div>
-<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160;<span class="comment">// - avoids explicit window management</span></div>
-<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;<span class="comment">// performance</span></div>
-<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;<span class="comment">// - uses stb_zlib, a PD zlib implementation with fast huffman decoding</span></div>
-<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;</div>
-<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
-<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
+<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;<span class="preprocessor">#ifdef STBI_SSE2</span></div>
+<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__sse2_available()) {</div>
+<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160; j-&gt;idct_block_kernel = stbi__idct_simd;</div>
+<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;</div>
+<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;</div>
+<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160; }</div>
+<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;<span class="preprocessor">#ifdef STBI_NEON</span></div>
+<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;<span class="preprocessor"></span> j-&gt;idct_block_kernel = stbi__idct_simd;</div>
+<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160; j-&gt;YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;</div>
+<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160; j-&gt;resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;</div>
+<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;</div>
+<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;<span class="comment">// clean up the temporary component buffers</span></div>
+<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__cleanup_jpeg(stbi__jpeg *j)</div>
+<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;{</div>
+<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160; stbi__free_jpeg_components(j, j-&gt;s-&gt;img_n, 0);</div>
+<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;}</div>
+<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160;</div>
+<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160; resample_row_func resample;</div>
+<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *line0, *line1;</div>
+<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160; <span class="keywordtype">int</span> hs, vs; <span class="comment">// expansion factor in each axis</span></div>
+<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160; <span class="keywordtype">int</span> w_lores; <span class="comment">// horizontal pixels pre-expansion</span></div>
+<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160; <span class="keywordtype">int</span> ystep; <span class="comment">// how far through vertical expansion we are</span></div>
+<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160; <span class="keywordtype">int</span> ypos; <span class="comment">// which pre-expansion row we&#39;re on</span></div>
+<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160;} stbi__resample;</div>
+<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160;</div>
+<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160;<span class="comment">// fast 0..255 * 0..255 =&gt; 0..255 rounded multiplication</span></div>
+<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__blinn_8x8(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> x, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> y)</div>
+<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;{</div>
+<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> t = x * y + 128;</div>
+<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((t + (t &gt;&gt; 8)) &gt;&gt; 8);</div>
+<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;}</div>
+<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160;</div>
+<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *load_jpeg_image(stbi__jpeg *z, <span class="keywordtype">int</span> *out_x, <span class="keywordtype">int</span> *out_y,</div>
+<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160; <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;{</div>
+<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160; <span class="keywordtype">int</span> n, decode_n, is_rgb;</div>
+<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160; z-&gt;s-&gt;img_n = 0; <span class="comment">// make stbi__cleanup_jpeg safe</span></div>
+<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;</div>
+<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160; <span class="comment">// validate req_comp</span></div>
+<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160; <span class="keywordflow">if</span> (req_comp &lt; 0 || req_comp &gt; 4)</div>
+<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad req_comp&quot;</span>, <span class="stringliteral">&quot;Internal error&quot;</span>);</div>
+<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160;</div>
+<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160; <span class="comment">// load a jpeg image from whichever source, but leave in YCbCr format</span></div>
+<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_image(z)) {</div>
+<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160; stbi__cleanup_jpeg(z);</div>
+<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160; }</div>
+<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;</div>
+<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160; <span class="comment">// determine actual number of components to generate</span></div>
+<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160; n = req_comp ? req_comp : z-&gt;s-&gt;img_n &gt;= 3 ? 3 : 1;</div>
+<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;</div>
+<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160; is_rgb = z-&gt;s-&gt;img_n == 3 &amp;&amp;</div>
+<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160; (z-&gt;rgb == 3 || (z-&gt;app14_color_transform == 0 &amp;&amp; !z-&gt;jfif));</div>
+<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;</div>
+<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160; <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 3 &amp;&amp; n &lt; 3 &amp;&amp; !is_rgb)</div>
+<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160; decode_n = 1;</div>
+<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160; decode_n = z-&gt;s-&gt;img_n;</div>
+<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;</div>
+<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160; <span class="comment">// resample and color-convert</span></div>
+<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160; {</div>
+<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160; <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *output;</div>
+<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *coutput[4];</div>
+<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;</div>
+<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160; stbi__resample res_comp[4];</div>
+<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;</div>
+<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; decode_n; ++k) {</div>
+<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160; stbi__resample *r = &amp;res_comp[k];</div>
+<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160;</div>
+<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160; <span class="comment">// allocate line buffer big enough for upsampling off the edges</span></div>
+<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160; <span class="comment">// with upsample factor of 4</span></div>
+<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160; z-&gt;img_comp[k].linebuf = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc(z-&gt;s-&gt;img_x + 3);</div>
+<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160; <span class="keywordflow">if</span> (!z-&gt;img_comp[k].linebuf) {</div>
+<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160; stbi__cleanup_jpeg(z);</div>
+<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160; }</div>
+<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;</div>
+<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160; r-&gt;hs = z-&gt;img_h_max / z-&gt;img_comp[k].h;</div>
+<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160; r-&gt;vs = z-&gt;img_v_max / z-&gt;img_comp[k].v;</div>
+<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160; r-&gt;ystep = r-&gt;vs &gt;&gt; 1;</div>
+<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160; r-&gt;w_lores = (z-&gt;s-&gt;img_x + r-&gt;hs - 1) / r-&gt;hs;</div>
+<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160; r-&gt;ypos = 0;</div>
+<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160; r-&gt;line0 = r-&gt;line1 = z-&gt;img_comp[k].data;</div>
+<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;</div>
+<div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160; if (r-&gt;hs == 1 &amp;&amp; r-&gt;vs == 1)</div>
+<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160; r-&gt;resample = resample_row_1;</div>
+<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 1 &amp;&amp; r-&gt;vs == 2)</div>
+<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160; r-&gt;resample = stbi__resample_row_v_2;</div>
+<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 2 &amp;&amp; r-&gt;vs == 1)</div>
+<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160; r-&gt;resample = stbi__resample_row_h_2;</div>
+<div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r-&gt;hs == 2 &amp;&amp; r-&gt;vs == 2)</div>
+<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160; r-&gt;resample = z-&gt;resample_row_hv_2_kernel;</div>
+<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160; r-&gt;resample = stbi__resample_row_generic;</div>
+<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160; }</div>
+<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;</div>
+<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160; <span class="comment">// can&#39;t error after this so, this is safe</span></div>
+<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160; output = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(n, z-&gt;s-&gt;img_x, z-&gt;s-&gt;img_y, 1);</div>
+<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160; <span class="keywordflow">if</span> (!output) {</div>
+<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160; stbi__cleanup_jpeg(z);</div>
+<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160; }</div>
+<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;</div>
+<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160; <span class="comment">// now go ahead and resample</span></div>
+<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; z-&gt;s-&gt;img_y; ++j) {</div>
+<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out = output + n * z-&gt;s-&gt;img_x * j;</div>
+<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; decode_n; ++k) {</div>
+<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160; stbi__resample *r = &amp;res_comp[k];</div>
+<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160; <span class="keywordtype">int</span> y_bot = r-&gt;ystep &gt;= (r-&gt;vs &gt;&gt; 1);</div>
+<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160; coutput[k] = r-&gt;resample(</div>
+<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160; z-&gt;img_comp[k].linebuf, y_bot ? r-&gt;line1 : r-&gt;line0,</div>
+<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160; y_bot ? r-&gt;line0 : r-&gt;line1, r-&gt;w_lores, r-&gt;hs);</div>
+<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160; <span class="keywordflow">if</span> (++r-&gt;ystep &gt;= r-&gt;vs) {</div>
+<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160; r-&gt;ystep = 0;</div>
+<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160; r-&gt;line0 = r-&gt;line1;</div>
+<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160; <span class="keywordflow">if</span> (++r-&gt;ypos &lt; z-&gt;img_comp[k].y)</div>
+<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160; r-&gt;line1 += z-&gt;img_comp[k].w2;</div>
+<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160; }</div>
+<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160; }</div>
+<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160; <span class="keywordflow">if</span> (n &gt;= 3) {</div>
+<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y = coutput[0];</div>
+<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160; <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 3) {</div>
+<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160; <span class="keywordflow">if</span> (is_rgb) {</div>
+<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160; out[0] = y[i];</div>
+<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160; out[1] = coutput[1][i];</div>
+<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160; out[2] = coutput[2][i];</div>
+<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160; out[3] = 255;</div>
+<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160; out += n;</div>
+<div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160; }</div>
+<div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2],</div>
+<div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160; z-&gt;s-&gt;img_x, n);</div>
+<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160; }</div>
+<div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4) {</div>
+<div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160; <span class="keywordflow">if</span> (z-&gt;app14_color_transform == 0) { <span class="comment">// CMYK</span></div>
+<div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
+<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160; out[0] = stbi__blinn_8x8(coutput[0][i], m);</div>
+<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160; out[1] = stbi__blinn_8x8(coutput[1][i], m);</div>
+<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160; out[2] = stbi__blinn_8x8(coutput[2][i], m);</div>
+<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160; out[3] = 255;</div>
+<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160; out += n;</div>
+<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160; }</div>
+<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;app14_color_transform == 2) { <span class="comment">// YCCK</span></div>
+<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2],</div>
+<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160; z-&gt;s-&gt;img_x, n);</div>
+<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
+<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160; out[0] = stbi__blinn_8x8(255 - out[0], m);</div>
+<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160; out[1] = stbi__blinn_8x8(255 - out[1], m);</div>
+<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160; out[2] = stbi__blinn_8x8(255 - out[2], m);</div>
+<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160; out += n;</div>
+<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160; }</div>
+<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// YCbCr + alpha? Ignore the fourth channel for</span></div>
+<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160; <span class="comment">// now</span></div>
+<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160; z-&gt;YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2],</div>
+<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160; z-&gt;s-&gt;img_x, n);</div>
+<div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160; }</div>
+<div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160; } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160; out[0] = out[1] = out[2] = y[i];</div>
+<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160; out[3] = 255; <span class="comment">// not used if n==3</span></div>
+<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160; out += n;</div>
+<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160; }</div>
+<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160; <span class="keywordflow">if</span> (is_rgb) {</div>
+<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160; <span class="keywordflow">if</span> (n == 1)</div>
+<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i)</div>
+<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160; *out++ = stbi__compute_y(</div>
+<div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160; coutput[0][i], coutput[1][i], coutput[2][i]);</div>
+<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i, out += 2) {</div>
+<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160; out[0] = stbi__compute_y(</div>
+<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160; coutput[0][i], coutput[1][i], coutput[2][i]);</div>
+<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160; out[1] = 255;</div>
+<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160; }</div>
+<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160; }</div>
+<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4 &amp;&amp; z-&gt;app14_color_transform == 0) {</div>
+<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> m = coutput[3][i];</div>
+<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> r = stbi__blinn_8x8(coutput[0][i], m);</div>
+<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> g = stbi__blinn_8x8(coutput[1][i], m);</div>
+<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> b = stbi__blinn_8x8(coutput[2][i], m);</div>
+<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160; out[0] = stbi__compute_y(r, g, b);</div>
+<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160; out[1] = 255;</div>
+<div class="line"><a name="l04172"></a><span class="lineno"> 4172</span>&#160; out += n;</div>
+<div class="line"><a name="l04173"></a><span class="lineno"> 4173</span>&#160; }</div>
+<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z-&gt;s-&gt;img_n == 4 &amp;&amp; z-&gt;app14_color_transform == 2) {</div>
+<div class="line"><a name="l04175"></a><span class="lineno"> 4175</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160; out[0] =</div>
+<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160; stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]);</div>
+<div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>&#160; out[1] = 255;</div>
+<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160; out += n;</div>
+<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160; }</div>
+<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *y = coutput[0];</div>
+<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160; <span class="keywordflow">if</span> (n == 1)</div>
+<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i)</div>
+<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160; out[i] = y[i];</div>
+<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; z-&gt;s-&gt;img_x; ++i)</div>
+<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160; *out++ = y[i], *out++ = 255;</div>
+<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160; }</div>
+<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160; }</div>
+<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160; }</div>
+<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160; stbi__cleanup_jpeg(z);</div>
+<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160; *out_x = z-&gt;s-&gt;img_x;</div>
+<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160; *out_y = z-&gt;s-&gt;img_y;</div>
+<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160; *comp = z-&gt;s-&gt;img_n &gt;= 3</div>
+<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160; ? 3</div>
+<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160; : 1; <span class="comment">// report original components, not output</span></div>
+<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160; <span class="keywordflow">return</span> output;</div>
+<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160; }</div>
+<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;}</div>
+<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;</div>
+<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__jpeg_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;{</div>
+<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result;</div>
+<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160; stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg));</div>
+<div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160; j-&gt;s = s;</div>
+<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160; stbi__setup_jpeg(j);</div>
+<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160; result = load_jpeg_image(j, x, y, comp, req_comp);</div>
+<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160; STBI_FREE(j);</div>
+<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;}</div>
+<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;</div>
+<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_test(stbi__context *s)</div>
<div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>&#160;{</div>
-<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160; stbi__uint32 length;</div>
-<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160; stbi__uint32 type;</div>
-<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;} stbi__pngchunk;</div>
-<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;</div>
-<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;<span class="keyword">static</span> stbi__pngchunk stbi__get_chunk_header(stbi__context *s)</div>
-<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;{</div>
-<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160; stbi__pngchunk c;</div>
-<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160; c.length = stbi__get32be(s);</div>
-<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160; c.type = stbi__get32be(s);</div>
-<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160; <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;}</div>
-<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;</div>
-<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__check_png_header(stbi__context *s)</div>
-<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160;{</div>
-<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160; <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> png_sig[8] = { 137,80,78,71,13,10,26,10 };</div>
-<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 8; ++i)</div>
-<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != png_sig[i]) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad png sig&quot;</span>,<span class="stringliteral">&quot;Not a PNG&quot;</span>);</div>
-<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;}</div>
-<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;</div>
-<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;{</div>
-<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160; stbi__context *s;</div>
-<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *idata, *expanded, *out;</div>
-<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160; <span class="keywordtype">int</span> depth;</div>
-<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;} stbi__png;</div>
-<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;</div>
-<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;</div>
-<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;<span class="keyword">enum</span> {</div>
-<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160; STBI__F_none=0,</div>
-<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160; STBI__F_sub=1,</div>
-<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160; STBI__F_up=2,</div>
-<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160; STBI__F_avg=3,</div>
-<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160; STBI__F_paeth=4,</div>
-<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160; <span class="comment">// synthetic filters used for first scanline to avoid needing a dummy row of 0s</span></div>
-<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160; STBI__F_avg_first,</div>
-<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160; STBI__F_paeth_first</div>
-<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;};</div>
-<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;</div>
-<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> first_row_filter[5] =</div>
-<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;{</div>
-<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160; STBI__F_none,</div>
-<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160; STBI__F_sub,</div>
-<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160; STBI__F_none,</div>
-<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160; STBI__F_avg_first,</div>
-<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160; STBI__F_paeth_first</div>
-<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;};</div>
-<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;</div>
-<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__paeth(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c)</div>
-<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;{</div>
-<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160; <span class="keywordtype">int</span> p = a + b - c;</div>
-<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160; <span class="keywordtype">int</span> pa = abs(p-a);</div>
-<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160; <span class="keywordtype">int</span> pb = abs(p-b);</div>
-<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160; <span class="keywordtype">int</span> pc = abs(p-c);</div>
-<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160; <span class="keywordflow">if</span> (pa &lt;= pb &amp;&amp; pa &lt;= pc) <span class="keywordflow">return</span> a;</div>
-<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160; <span class="keywordflow">if</span> (pb &lt;= pc) <span class="keywordflow">return</span> b;</div>
-<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160; <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160;}</div>
-<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;</div>
-<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 };</div>
-<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;</div>
-<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;<span class="comment">// create the png data from post-deflated data</span></div>
-<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__create_png_image_raw(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *raw, stbi__uint32 raw_len, <span class="keywordtype">int</span> out_n, stbi__uint32 x, stbi__uint32 y, <span class="keywordtype">int</span> depth, <span class="keywordtype">int</span> color)</div>
-<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;{</div>
-<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160; <span class="keywordtype">int</span> bytes = (depth == 16? 2 : 1);</div>
-<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160; stbi__context *s = a-&gt;s;</div>
-<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160; stbi__uint32 i,j,stride = x*out_n*bytes;</div>
-<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160; stbi__uint32 img_len, img_width_bytes;</div>
-<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160; <span class="keywordtype">int</span> k;</div>
-<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160; <span class="keywordtype">int</span> img_n = s-&gt;img_n; <span class="comment">// copy it into a local for later</span></div>
-<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;</div>
-<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160; <span class="keywordtype">int</span> output_bytes = out_n*bytes;</div>
-<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160; <span class="keywordtype">int</span> filter_bytes = img_n*bytes;</div>
-<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160; <span class="keywordtype">int</span> width = x;</div>
-<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;</div>
-<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160; STBI_ASSERT(out_n == s-&gt;img_n || out_n == s-&gt;img_n+1);</div>
-<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160; a-&gt;out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(x, y, output_bytes, 0); <span class="comment">// extra bytes to write off the end into</span></div>
-<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160; <span class="keywordflow">if</span> (!a-&gt;out) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160;</div>
-<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160; img_width_bytes = (((img_n * x * depth) + 7) &gt;&gt; 3);</div>
-<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160; img_len = (img_width_bytes + 1) * y;</div>
-<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160; <span class="comment">// we used to check for exact match between raw_len and img_len on non-interlaced PNGs,</span></div>
-<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160; <span class="comment">// but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),</span></div>
-<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160; <span class="comment">// so just check for raw_len &lt; img_len always.</span></div>
-<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160; <span class="keywordflow">if</span> (raw_len &lt; img_len) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not enough pixels&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160;</div>
-<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; y; ++j) {</div>
-<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out + stride*j;</div>
-<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *prior;</div>
-<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160; <span class="keywordtype">int</span> filter = *raw++;</div>
-<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;</div>
-<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160; <span class="keywordflow">if</span> (filter &gt; 4)</div>
-<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid filter&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;</div>
-<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8) {</div>
-<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160; STBI_ASSERT(img_width_bytes &lt;= x);</div>
-<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160; cur += x*out_n - img_width_bytes; <span class="comment">// store output to the rightmost img_len bytes, so we can decode in place</span></div>
-<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160; filter_bytes = 1;</div>
-<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160; width = img_width_bytes;</div>
-<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160; }</div>
-<div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160; prior = cur - stride; <span class="comment">// bugfix: need to compute this after &#39;cur +=&#39; computation above</span></div>
-<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;</div>
-<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160; <span class="comment">// if first row, use special filter that doesn&#39;t sample previous row</span></div>
-<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160; <span class="keywordflow">if</span> (j == 0) filter = first_row_filter[filter];</div>
-<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;</div>
-<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160; <span class="comment">// handle first byte explicitly</span></div>
-<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160; <span class="keywordflow">for</span> (k=0; k &lt; filter_bytes; ++k) {</div>
-<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160; <span class="keywordflow">switch</span> (filter) {</div>
-<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160; <span class="keywordflow">case</span> STBI__F_none : cur[k] = raw[k]; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160; <span class="keywordflow">case</span> STBI__F_sub : cur[k] = raw[k]; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160; <span class="keywordflow">case</span> STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160; <span class="keywordflow">case</span> STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]&gt;&gt;1)); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160; <span class="keywordflow">case</span> STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160; <span class="keywordflow">case</span> STBI__F_avg_first : cur[k] = raw[k]; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160; <span class="keywordflow">case</span> STBI__F_paeth_first: cur[k] = raw[k]; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160; }</div>
-<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160; }</div>
-<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160;</div>
-<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160; <span class="keywordflow">if</span> (depth == 8) {</div>
-<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160; <span class="keywordflow">if</span> (img_n != out_n)</div>
-<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160; cur[img_n] = 255; <span class="comment">// first pixel</span></div>
-<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160; raw += img_n;</div>
-<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160; cur += out_n;</div>
-<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160; prior += out_n;</div>
-<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 16) {</div>
-<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160; <span class="keywordflow">if</span> (img_n != out_n) {</div>
-<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160; cur[filter_bytes] = 255; <span class="comment">// first pixel top byte</span></div>
-<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160; cur[filter_bytes+1] = 255; <span class="comment">// first pixel bottom byte</span></div>
-<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160; }</div>
-<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>&#160; raw += filter_bytes;</div>
-<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160; cur += output_bytes;</div>
-<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160; prior += output_bytes;</div>
-<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160; raw += 1;</div>
-<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160; cur += 1;</div>
-<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160; prior += 1;</div>
-<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160; }</div>
-<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160;</div>
-<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160; <span class="comment">// this is a little gross, so that we don&#39;t switch per-pixel or per-component</span></div>
-<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8 || img_n == out_n) {</div>
-<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160; <span class="keywordtype">int</span> nk = (width - 1)*filter_bytes;</div>
-<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;<span class="preprocessor"> #define STBI__CASE(f) \</span></div>
-<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;<span class="preprocessor"> case f: \</span></div>
-<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;<span class="preprocessor"> for (k=0; k &lt; nk; ++k)</span></div>
-<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">switch</span> (filter) {</div>
-<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160; <span class="comment">// &quot;none&quot; filter turns into a memcpy here; make that explicit.</span></div>
-<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160; <span class="keywordflow">case</span> STBI__F_none: memcpy(cur, raw, nk); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160; STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160; STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160; STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])&gt;&gt;1)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160; STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160; STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] &gt;&gt; 1)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160; STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160; }</div>
-<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160;<span class="preprocessor"> #undef STBI__CASE</span></div>
-<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;<span class="preprocessor"></span> raw += nk;</div>
-<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160; STBI_ASSERT(img_n+1 == out_n);</div>
-<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;<span class="preprocessor"> #define STBI__CASE(f) \</span></div>
-<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;<span class="preprocessor"> case f: \</span></div>
-<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;<span class="preprocessor"> for (i=x-1; i &gt;= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \</span></div>
-<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160;<span class="preprocessor"> for (k=0; k &lt; filter_bytes; ++k)</span></div>
-<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">switch</span> (filter) {</div>
-<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160; STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160; STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160; STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160; STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])&gt;&gt;1)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160; STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160; STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] &gt;&gt; 1)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160; STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160; }</div>
-<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;<span class="preprocessor"> #undef STBI__CASE</span></div>
-<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160; <span class="comment">// the loop above sets the high byte of the pixels&#39; alpha, but for</span></div>
-<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160; <span class="comment">// 16 bit png files we also need the low byte set. we&#39;ll do that here.</span></div>
-<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160; <span class="keywordflow">if</span> (depth == 16) {</div>
-<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160; cur = a-&gt;out + stride*j; <span class="comment">// start at the beginning of the row again</span></div>
-<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; x; ++i,cur+=output_bytes) {</div>
-<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160; cur[filter_bytes+1] = 255;</div>
-<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160; }</div>
-<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160; }</div>
-<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160; }</div>
-<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160; }</div>
-<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;</div>
-<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160; <span class="comment">// we make a separate pass to expand bits to pixels; for performance,</span></div>
-<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160; <span class="comment">// this could run two scanlines behind the above code, so it won&#39;t</span></div>
-<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160; <span class="comment">// intefere with filtering but will still be in the cache.</span></div>
-<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8) {</div>
-<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; y; ++j) {</div>
-<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out + stride*j;</div>
-<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in = a-&gt;out + stride*j + x*out_n - img_width_bytes;</div>
-<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160; <span class="comment">// unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit</span></div>
-<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160; <span class="comment">// png guarante byte alignment, if width is not multiple of 8/4/2 we&#39;ll decode dummy trailing data that will be skipped in the later loop</span></div>
-<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; <span class="comment">// scale grayscale values to 0..255 range</span></div>
-<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;</div>
-<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160; <span class="comment">// note that the final byte might overshoot and write more data than desired.</span></div>
-<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160; <span class="comment">// we can allocate enough data that this never writes out of memory, but it</span></div>
-<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160; <span class="comment">// could also overwrite the next scanline. can it overwrite non-empty data</span></div>
-<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160; <span class="comment">// on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.</span></div>
-<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160; <span class="comment">// so we need to explicitly clamp the final ones</span></div>
-<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;</div>
-<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160; <span class="keywordflow">if</span> (depth == 4) {</div>
-<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160; <span class="keywordflow">for</span> (k=x*img_n; k &gt;= 2; k-=2, ++in) {</div>
-<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) );</div>
-<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160; *cur++ = scale * ((*in ) &amp; 0x0f);</div>
-<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160; }</div>
-<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160; <span class="keywordflow">if</span> (k &gt; 0) *cur++ = scale * ((*in &gt;&gt; 4) );</div>
-<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 2) {</div>
-<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160; <span class="keywordflow">for</span> (k=x*img_n; k &gt;= 4; k-=4, ++in) {</div>
-<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6) );</div>
-<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x03);</div>
-<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x03);</div>
-<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160; *cur++ = scale * ((*in ) &amp; 0x03);</div>
-<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160; }</div>
-<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160; <span class="keywordflow">if</span> (k &gt; 0) *cur++ = scale * ((*in &gt;&gt; 6) );</div>
-<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160; <span class="keywordflow">if</span> (k &gt; 1) *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x03);</div>
-<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160; <span class="keywordflow">if</span> (k &gt; 2) *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x03);</div>
-<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 1) {</div>
-<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160; <span class="keywordflow">for</span> (k=x*img_n; k &gt;= 8; k-=8, ++in) {</div>
-<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160; *cur++ = scale * ((*in &gt;&gt; 7) );</div>
-<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6) &amp; 0x01);</div>
-<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160; *cur++ = scale * ((*in &gt;&gt; 5) &amp; 0x01);</div>
-<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x01);</div>
-<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160; *cur++ = scale * ((*in &gt;&gt; 3) &amp; 0x01);</div>
-<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x01);</div>
-<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160; *cur++ = scale * ((*in &gt;&gt; 1) &amp; 0x01);</div>
-<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160; *cur++ = scale * ((*in ) &amp; 0x01);</div>
-<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160; }</div>
-<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160; <span class="keywordflow">if</span> (k &gt; 0) *cur++ = scale * ((*in &gt;&gt; 7) );</div>
-<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160; <span class="keywordflow">if</span> (k &gt; 1) *cur++ = scale * ((*in &gt;&gt; 6) &amp; 0x01);</div>
-<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160; <span class="keywordflow">if</span> (k &gt; 2) *cur++ = scale * ((*in &gt;&gt; 5) &amp; 0x01);</div>
-<div class="line"><a name="l04450"></a><span class="lineno"> 4450</span>&#160; <span class="keywordflow">if</span> (k &gt; 3) *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x01);</div>
-<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160; <span class="keywordflow">if</span> (k &gt; 4) *cur++ = scale * ((*in &gt;&gt; 3) &amp; 0x01);</div>
-<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160; <span class="keywordflow">if</span> (k &gt; 5) *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x01);</div>
-<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160; <span class="keywordflow">if</span> (k &gt; 6) *cur++ = scale * ((*in &gt;&gt; 1) &amp; 0x01);</div>
-<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160; }</div>
-<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160; <span class="keywordflow">if</span> (img_n != out_n) {</div>
-<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160; <span class="keywordtype">int</span> q;</div>
-<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160; <span class="comment">// insert alpha = 255</span></div>
-<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160; cur = a-&gt;out + stride*j;</div>
-<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160; <span class="keywordflow">if</span> (img_n == 1) {</div>
-<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160; <span class="keywordflow">for</span> (q=x-1; q &gt;= 0; --q) {</div>
-<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160; cur[q*2+1] = 255;</div>
-<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160; cur[q*2+0] = cur[q];</div>
-<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160; }</div>
-<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160; STBI_ASSERT(img_n == 3);</div>
-<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160; <span class="keywordflow">for</span> (q=x-1; q &gt;= 0; --q) {</div>
-<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160; cur[q*4+3] = 255;</div>
-<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160; cur[q*4+2] = cur[q*3+2];</div>
-<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160; cur[q*4+1] = cur[q*3+1];</div>
-<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160; cur[q*4+0] = cur[q*3+0];</div>
-<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160; }</div>
-<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160; }</div>
-<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160; }</div>
-<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160; }</div>
-<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 16) {</div>
-<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160; <span class="comment">// force the image data from big-endian to platform-native.</span></div>
-<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160; <span class="comment">// this is done in a separate pass due to the decoding relying</span></div>
-<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160; <span class="comment">// on the data being untouched, but could probably be done</span></div>
-<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160; <span class="comment">// per-line during decode if care is taken.</span></div>
-<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out;</div>
-<div class="line"><a name="l04481"></a><span class="lineno"> 4481</span>&#160; stbi__uint16 *cur16 = (stbi__uint16*)cur;</div>
-<div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160;</div>
-<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160; <span class="keywordflow">for</span>(i=0; i &lt; x*y*out_n; ++i,cur16++,cur+=2) {</div>
-<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160; *cur16 = (cur[0] &lt;&lt; 8) | cur[1];</div>
-<div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160; }</div>
-<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160; }</div>
-<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;</div>
-<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;}</div>
-<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;</div>
-<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__create_png_image(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *image_data, stbi__uint32 image_data_len, <span class="keywordtype">int</span> out_n, <span class="keywordtype">int</span> depth, <span class="keywordtype">int</span> color, <span class="keywordtype">int</span> interlaced)</div>
-<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160;{</div>
-<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160; <span class="keywordtype">int</span> bytes = (depth == 16 ? 2 : 1);</div>
-<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160; <span class="keywordtype">int</span> out_bytes = out_n * bytes;</div>
-<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<span class="keyword">final</span>;</div>
-<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160; <span class="keywordtype">int</span> p;</div>
-<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160; <span class="keywordflow">if</span> (!interlaced)</div>
-<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160; <span class="keywordflow">return</span> stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a-&gt;s-&gt;img_x, a-&gt;s-&gt;img_y, depth, color);</div>
-<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;</div>
-<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160; <span class="comment">// de-interlacing</span></div>
-<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160; <span class="keyword">final</span> = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(a-&gt;s-&gt;img_x, a-&gt;s-&gt;img_y, out_bytes, 0);</div>
-<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160; <span class="keywordflow">for</span> (p=0; p &lt; 7; ++p) {</div>
-<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160; <span class="keywordtype">int</span> xorig[] = { 0,4,0,2,0,1,0 };</div>
-<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160; <span class="keywordtype">int</span> yorig[] = { 0,0,4,0,2,0,1 };</div>
-<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160; <span class="keywordtype">int</span> xspc[] = { 8,8,4,4,2,2,1 };</div>
-<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160; <span class="keywordtype">int</span> yspc[] = { 8,8,8,4,4,2,2 };</div>
-<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160; <span class="keywordtype">int</span> i,j,x,y;</div>
-<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160; <span class="comment">// pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1</span></div>
-<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160; x = (a-&gt;s-&gt;img_x - xorig[p] + xspc[p]-1) / xspc[p];</div>
-<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160; y = (a-&gt;s-&gt;img_y - yorig[p] + yspc[p]-1) / yspc[p];</div>
-<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160; <span class="keywordflow">if</span> (x &amp;&amp; y) {</div>
-<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160; stbi__uint32 img_len = ((((a-&gt;s-&gt;img_n * x * depth) + 7) &gt;&gt; 3) + 1) * y;</div>
-<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160; <span class="keywordflow">if</span> (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) {</div>
-<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160; STBI_FREE(<span class="keyword">final</span>);</div>
-<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160; }</div>
-<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; y; ++j) {</div>
-<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; x; ++i) {</div>
-<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160; <span class="keywordtype">int</span> out_y = j*yspc[p]+yorig[p];</div>
-<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160; <span class="keywordtype">int</span> out_x = i*xspc[p]+xorig[p];</div>
-<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160; memcpy(<span class="keyword">final</span> + out_y*a-&gt;s-&gt;img_x*out_bytes + out_x*out_bytes,</div>
-<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160; a-&gt;out + (j*x+i)*out_bytes, out_bytes);</div>
-<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160; }</div>
-<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160; }</div>
-<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160; STBI_FREE(a-&gt;out);</div>
-<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160; image_data += img_len;</div>
-<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160; image_data_len -= img_len;</div>
-<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160; }</div>
-<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160; }</div>
-<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160; a-&gt;out = <span class="keyword">final</span>;</div>
-<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;</div>
-<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160;}</div>
-<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;</div>
-<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_transparency(stbi__png *z, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> tc[3], <span class="keywordtype">int</span> out_n)</div>
-<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;{</div>
-<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160; stbi__context *s = z-&gt;s;</div>
-<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
-<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = z-&gt;out;</div>
-<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;</div>
-<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160; <span class="comment">// compute color-based transparency, assuming we&#39;ve</span></div>
-<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160; <span class="comment">// already got 255 as the alpha value in the output</span></div>
-<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160; STBI_ASSERT(out_n == 2 || out_n == 4);</div>
-<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160;</div>
-<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160; <span class="keywordflow">if</span> (out_n == 2) {</div>
-<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160; p[1] = (p[0] == tc[0] ? 0 : 255);</div>
-<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160; p += 2;</div>
-<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160; }</div>
-<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160; <span class="keywordflow">if</span> (p[0] == tc[0] &amp;&amp; p[1] == tc[1] &amp;&amp; p[2] == tc[2])</div>
-<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160; p[3] = 0;</div>
-<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160; p += 4;</div>
-<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160; }</div>
-<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160; }</div>
-<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160;}</div>
-<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160;</div>
-<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], <span class="keywordtype">int</span> out_n)</div>
-<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160;{</div>
-<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160; stbi__context *s = z-&gt;s;</div>
-<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
-<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160; stbi__uint16 *p = (stbi__uint16*) z-&gt;out;</div>
-<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160;</div>
-<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160; <span class="comment">// compute color-based transparency, assuming we&#39;ve</span></div>
-<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160; <span class="comment">// already got 65535 as the alpha value in the output</span></div>
-<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160; STBI_ASSERT(out_n == 2 || out_n == 4);</div>
-<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160;</div>
-<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160; <span class="keywordflow">if</span> (out_n == 2) {</div>
-<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160; p[1] = (p[0] == tc[0] ? 0 : 65535);</div>
-<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160; p += 2;</div>
-<div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160; }</div>
-<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160; <span class="keywordflow">if</span> (p[0] == tc[0] &amp;&amp; p[1] == tc[1] &amp;&amp; p[2] == tc[2])</div>
-<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160; p[3] = 0;</div>
-<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160; p += 4;</div>
-<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160; }</div>
-<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160; }</div>
-<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;}</div>
-<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;</div>
-<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__expand_png_palette(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *palette, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> pal_img_n)</div>
-<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160;{</div>
-<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160; stbi__uint32 i, pixel_count = a-&gt;s-&gt;img_x * a-&gt;s-&gt;img_y;</div>
-<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, *temp_out, *orig = a-&gt;out;</div>
-<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;</div>
-<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad2(pixel_count, pal_img_n, 0);</div>
-<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160; <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;</div>
-<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160; <span class="comment">// between here and free(out) below, exitting would leak</span></div>
-<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160; temp_out = p;</div>
-<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;</div>
-<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160; <span class="keywordflow">if</span> (pal_img_n == 3) {</div>
-<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160; <span class="keywordtype">int</span> n = orig[i]*4;</div>
-<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160; p[0] = palette[n ];</div>
-<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160; p[1] = palette[n+1];</div>
-<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160; p[2] = palette[n+2];</div>
-<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160; p += 3;</div>
-<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160; }</div>
-<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160; <span class="keywordtype">int</span> n = orig[i]*4;</div>
-<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160; p[0] = palette[n ];</div>
-<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160; p[1] = palette[n+1];</div>
-<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160; p[2] = palette[n+2];</div>
-<div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>&#160; p[3] = palette[n+3];</div>
-<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160; p += 4;</div>
-<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160; }</div>
-<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160; }</div>
-<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160; STBI_FREE(a-&gt;out);</div>
-<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160; a-&gt;out = temp_out;</div>
-<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160;</div>
-<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160; STBI_NOTUSED(len);</div>
-<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160;</div>
-<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160;}</div>
-<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160;</div>
-<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__unpremultiply_on_load = 0;</div>
-<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__de_iphone_flag = 0;</div>
-<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160;</div>
-<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9">stbi_set_unpremultiply_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_unpremultiply)</div>
-<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160;{</div>
-<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160; stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply;</div>
+<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160; <span class="keywordtype">int</span> r;</div>
+<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160; stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg));</div>
+<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160; j-&gt;s = s;</div>
+<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160; stbi__setup_jpeg(j);</div>
+<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160; r = stbi__decode_jpeg_header(j, STBI__SCAN_type);</div>
+<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160; STBI_FREE(j);</div>
+<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;}</div>
+<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;</div>
+<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info_raw(stbi__jpeg *j, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;{</div>
+<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160; <span class="keywordflow">if</span> (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {</div>
+<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160; stbi__rewind(j-&gt;s);</div>
+<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160; }</div>
+<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160; <span class="keywordflow">if</span> (x)</div>
+<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160; *x = j-&gt;s-&gt;img_x;</div>
+<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160; <span class="keywordflow">if</span> (y)</div>
+<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160; *y = j-&gt;s-&gt;img_y;</div>
+<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160; *comp = j-&gt;s-&gt;img_n &gt;= 3 ? 3 : 1;</div>
+<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;}</div>
+<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160;</div>
+<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__jpeg_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;{</div>
+<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160; <span class="keywordtype">int</span> result;</div>
+<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160; stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(<span class="keyword">sizeof</span>(stbi__jpeg)));</div>
+<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160; j-&gt;s = s;</div>
+<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160; result = stbi__jpeg_info_raw(j, x, y, comp);</div>
+<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160; STBI_FREE(j);</div>
+<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;}</div>
+<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160; <span class="comment">// public domain zlib decode v0.2 Sean Barrett 2006-11-18</span></div>
+<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160; <span class="comment">// simple implementation</span></div>
+<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160; <span class="comment">// - all input must be provided in an upfront buffer</span></div>
+<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160; <span class="comment">// - all output is written to a single output buffer (can</span></div>
+<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160; <span class="comment">// malloc/realloc)</span></div>
+<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160; <span class="comment">// performance</span></div>
+<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160; <span class="comment">// - fast huffman</span></div>
+<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;</div>
+<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;<span class="preprocessor">#ifndef STBI_NO_ZLIB</span></div>
+<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;<span class="comment">// fast-way is faster to check than jpeg huffman, but slow way is slower</span></div>
+<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;<span class="preprocessor">#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables</span></div>
+<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STBI__ZFAST_MASK ((1 &lt;&lt; STBI__ZFAST_BITS) - 1)</span></div>
+<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;<span class="comment">// zlib-style huffman encoding</span></div>
+<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;<span class="comment">// (jpegs packs from left, zlib from right, so can&#39;t share code)</span></div>
+<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160; stbi__uint16 fast[1 &lt;&lt; STBI__ZFAST_BITS];</div>
+<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160; stbi__uint16 firstcode[16];</div>
+<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160; <span class="keywordtype">int</span> maxcode[17];</div>
+<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160; stbi__uint16 firstsymbol[16];</div>
+<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size[288];</div>
+<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160; stbi__uint16 value[288];</div>
+<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;} stbi__zhuffman;</div>
+<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;</div>
+<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bitreverse16(<span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;{</div>
+<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160; n = ((n &amp; 0xAAAA) &gt;&gt; 1) | ((n &amp; 0x5555) &lt;&lt; 1);</div>
+<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160; n = ((n &amp; 0xCCCC) &gt;&gt; 2) | ((n &amp; 0x3333) &lt;&lt; 2);</div>
+<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160; n = ((n &amp; 0xF0F0) &gt;&gt; 4) | ((n &amp; 0x0F0F) &lt;&lt; 4);</div>
+<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160; n = ((n &amp; 0xFF00) &gt;&gt; 8) | ((n &amp; 0x00FF) &lt;&lt; 8);</div>
+<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160; <span class="keywordflow">return</span> n;</div>
+<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160;}</div>
+<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;</div>
+<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bit_reverse(<span class="keywordtype">int</span> v, <span class="keywordtype">int</span> bits)</div>
+<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;{</div>
+<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160; STBI_ASSERT(bits &lt;= 16);</div>
+<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160; <span class="comment">// to bit reverse n bits, reverse 16 and shift</span></div>
+<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160; <span class="comment">// e.g. 11 bits, bit reverse and shift away 5</span></div>
+<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160; <span class="keywordflow">return</span> stbi__bitreverse16(v) &gt;&gt; (16 - bits);</div>
+<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160;}</div>
+<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;</div>
+<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zbuild_huffman(stbi__zhuffman *z, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *sizelist,</div>
+<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160; <span class="keywordtype">int</span> num)</div>
+<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;{</div>
+<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160; <span class="keywordtype">int</span> i, k = 0;</div>
+<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160; <span class="keywordtype">int</span> code, next_code[16], sizes[17];</div>
+<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;</div>
+<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160; <span class="comment">// DEFLATE spec for generating codes</span></div>
+<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160; memset(sizes, 0, <span class="keyword">sizeof</span>(sizes));</div>
+<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160; memset(z-&gt;fast, 0, <span class="keyword">sizeof</span>(z-&gt;fast));</div>
+<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; num; ++i)</div>
+<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160; ++sizes[sizelist[i]];</div>
+<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160; sizes[0] = 0;</div>
+<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt; 16; ++i)</div>
+<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160; <span class="keywordflow">if</span> (sizes[i] &gt; (1 &lt;&lt; i))</div>
+<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad sizes&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160; code = 0;</div>
+<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt; 16; ++i) {</div>
+<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160; next_code[i] = code;</div>
+<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160; z-&gt;firstcode[i] = (stbi__uint16)code;</div>
+<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160; z-&gt;firstsymbol[i] = (stbi__uint16)k;</div>
+<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160; code = (code + sizes[i]);</div>
+<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160; <span class="keywordflow">if</span> (sizes[i])</div>
+<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160; <span class="keywordflow">if</span> (code - 1 &gt;= (1 &lt;&lt; i))</div>
+<div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160; z-&gt;maxcode[i] = code &lt;&lt; (16 - i); <span class="comment">// preshift for inner loop</span></div>
+<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160; code &lt;&lt;= 1;</div>
+<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160; k += sizes[i];</div>
+<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160; }</div>
+<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160; z-&gt;maxcode[16] = 0x10000; <span class="comment">// sentinel</span></div>
+<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; num; ++i) {</div>
+<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160; <span class="keywordtype">int</span> s = sizelist[i];</div>
+<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160; <span class="keywordflow">if</span> (s) {</div>
+<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160; <span class="keywordtype">int</span> c = next_code[s] - z-&gt;firstcode[s] + z-&gt;firstsymbol[s];</div>
+<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160; stbi__uint16 fastv = (stbi__uint16)((s &lt;&lt; 9) | i);</div>
+<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160; z-&gt;size[c] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)s;</div>
+<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160; z-&gt;value[c] = (stbi__uint16)i;</div>
+<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160; <span class="keywordflow">if</span> (s &lt;= STBI__ZFAST_BITS) {</div>
+<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160; <span class="keywordtype">int</span> j = stbi__bit_reverse(next_code[s], s);</div>
+<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160; <span class="keywordflow">while</span> (j &lt; (1 &lt;&lt; STBI__ZFAST_BITS)) {</div>
+<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160; z-&gt;fast[j] = fastv;</div>
+<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160; j += (1 &lt;&lt; s);</div>
+<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160; }</div>
+<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160; }</div>
+<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160; ++next_code[s];</div>
+<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160; }</div>
+<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160; }</div>
+<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160;}</div>
+<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160;</div>
+<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160;<span class="comment">// zlib-from-memory implementation for PNG reading</span></div>
+<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160;<span class="comment">// because PNG allows splitting the zlib stream arbitrarily,</span></div>
+<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160;<span class="comment">// and it&#39;s annoying structurally to have PNG call ZLIB call PNG,</span></div>
+<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>&#160;<span class="comment">// we require PNG read all the IDATs and combine them into a single</span></div>
+<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160;<span class="comment">// memory buffer</span></div>
+<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160;</div>
+<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *zbuffer, *zbuffer_end;</div>
+<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160; <span class="keywordtype">int</span> num_bits;</div>
+<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160; stbi__uint32 code_buffer;</div>
+<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;</div>
+<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160; <span class="keywordtype">char</span> *zout;</div>
+<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160; <span class="keywordtype">char</span> *zout_start;</div>
+<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160; <span class="keywordtype">char</span> *zout_end;</div>
+<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160; <span class="keywordtype">int</span> z_expandable;</div>
+<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;</div>
+<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160; stbi__zhuffman z_length, z_distance;</div>
+<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;} stbi__zbuf;</div>
+<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;</div>
+<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160;stbi_inline <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zget8(stbi__zbuf *z)</div>
+<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160;{</div>
+<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160; <span class="keywordflow">if</span> (z-&gt;zbuffer &gt;= z-&gt;zbuffer_end)</div>
+<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160; <span class="keywordflow">return</span> *z-&gt;zbuffer++;</div>
+<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;}</div>
+<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;</div>
+<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__fill_bits(stbi__zbuf *z)</div>
+<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160;{</div>
+<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160; STBI_ASSERT(z-&gt;code_buffer &lt; (1U &lt;&lt; z-&gt;num_bits));</div>
+<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160; z-&gt;code_buffer |= (<span class="keywordtype">unsigned</span> int)stbi__zget8(z) &lt;&lt; z-&gt;num_bits;</div>
+<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160; z-&gt;num_bits += 8;</div>
+<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160; } <span class="keywordflow">while</span> (z-&gt;num_bits &lt;= 24);</div>
+<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;}</div>
+<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;</div>
+<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stbi__zreceive(stbi__zbuf *z, <span class="keywordtype">int</span> n)</div>
+<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;{</div>
+<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160; <span class="keywordflow">if</span> (z-&gt;num_bits &lt; n)</div>
+<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160; stbi__fill_bits(z);</div>
+<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160; k = z-&gt;code_buffer &amp; ((1 &lt;&lt; n) - 1);</div>
+<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160; z-&gt;code_buffer &gt;&gt;= n;</div>
+<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160; z-&gt;num_bits -= n;</div>
+<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160; <span class="keywordflow">return</span> k;</div>
+<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160;}</div>
+<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;</div>
+<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)</div>
+<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160;{</div>
+<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160; <span class="keywordtype">int</span> b, s, k;</div>
+<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160; <span class="comment">// not resolved by fast table, so compute it the slow way</span></div>
+<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160; <span class="comment">// use jpeg approach, which requires MSbits at top</span></div>
+<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160; k = stbi__bit_reverse(a-&gt;code_buffer, 16);</div>
+<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160; <span class="keywordflow">for</span> (s = STBI__ZFAST_BITS + 1;; ++s)</div>
+<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160; <span class="keywordflow">if</span> (k &lt; z-&gt;maxcode[s])</div>
+<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160; <span class="keywordflow">if</span> (s == 16)</div>
+<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// invalid code!</span></div>
+<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160; <span class="comment">// code size is s, so:</span></div>
+<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160; b = (k &gt;&gt; (16 - s)) - z-&gt;firstcode[s] + z-&gt;firstsymbol[s];</div>
+<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160; STBI_ASSERT(z-&gt;size[b] == s);</div>
+<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160; a-&gt;code_buffer &gt;&gt;= s;</div>
+<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160; a-&gt;num_bits -= s;</div>
+<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160; <span class="keywordflow">return</span> z-&gt;value[b];</div>
+<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;}</div>
+<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;</div>
+<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;stbi_inline <span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)</div>
+<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;{</div>
+<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160; <span class="keywordtype">int</span> b, s;</div>
+<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160; <span class="keywordflow">if</span> (a-&gt;num_bits &lt; 16)</div>
+<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160; stbi__fill_bits(a);</div>
+<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160; b = z-&gt;fast[a-&gt;code_buffer &amp; STBI__ZFAST_MASK];</div>
+<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160; <span class="keywordflow">if</span> (b) {</div>
+<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160; s = b &gt;&gt; 9;</div>
+<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160; a-&gt;code_buffer &gt;&gt;= s;</div>
+<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160; a-&gt;num_bits -= s;</div>
+<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160; <span class="keywordflow">return</span> b &amp; 511;</div>
+<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160; }</div>
+<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160; <span class="keywordflow">return</span> stbi__zhuffman_decode_slowpath(a, z);</div>
+<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;}</div>
+<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;</div>
+<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zexpand(stbi__zbuf *z, <span class="keywordtype">char</span> *zout,</div>
+<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160; <span class="keywordtype">int</span> n) <span class="comment">// need to make room for n bytes</span></div>
+<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160;{</div>
+<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160; <span class="keywordtype">char</span> *q;</div>
+<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160; <span class="keywordtype">int</span> cur, limit, old_limit;</div>
+<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160; z-&gt;zout = zout;</div>
+<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160; <span class="keywordflow">if</span> (!z-&gt;z_expandable)</div>
+<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;output buffer limit&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160; cur = (int)(z-&gt;zout - z-&gt;zout_start);</div>
+<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160; limit = old_limit = (int)(z-&gt;zout_end - z-&gt;zout_start);</div>
+<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160; <span class="keywordflow">while</span> (cur + n &gt; limit)</div>
+<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160; limit *= 2;</div>
+<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160; q = (<span class="keywordtype">char</span> *)STBI_REALLOC_SIZED(z-&gt;zout_start, old_limit, limit);</div>
+<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160; STBI_NOTUSED(old_limit);</div>
+<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160; <span class="keywordflow">if</span> (q == NULL)</div>
+<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160; z-&gt;zout_start = q;</div>
+<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160; z-&gt;zout = q + cur;</div>
+<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160; z-&gt;zout_end = q + limit;</div>
+<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160;}</div>
+<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160;</div>
+<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zlength_base[31] = {</div>
+<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160; 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,</div>
+<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};</div>
+<div class="line"><a name="l04450"></a><span class="lineno"> 4450</span>&#160;</div>
+<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zlength_extra[31] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,</div>
+<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160; 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4,</div>
+<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160; 4, 4, 5, 5, 5, 5, 0, 0, 0};</div>
+<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160;</div>
+<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zdist_base[32] = {</div>
+<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160; 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33,</div>
+<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160; 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537,</div>
+<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160; 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0};</div>
+<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160;</div>
+<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__zdist_extra[32] = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3,</div>
+<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160; 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,</div>
+<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160; 9, 9, 10, 10, 11, 11, 12, 12, 13, 13};</div>
+<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;</div>
+<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_huffman_block(stbi__zbuf *a)</div>
+<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160;{</div>
+<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160; <span class="keywordtype">char</span> *zout = a-&gt;zout;</div>
+<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160; <span class="keywordtype">int</span> z = stbi__zhuffman_decode(a, &amp;a-&gt;z_length);</div>
+<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160; <span class="keywordflow">if</span> (z &lt; 256) {</div>
+<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160; <span class="keywordflow">if</span> (z &lt; 0)</div>
+<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>,</div>
+<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160; <span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// error in huffman codes</span></div>
+<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160; <span class="keywordflow">if</span> (zout &gt;= a-&gt;zout_end) {</div>
+<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, zout, 1))</div>
+<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160; zout = a-&gt;zout;</div>
+<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160; }</div>
+<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160; *zout++ = (char)z;</div>
+<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
+<div class="line"><a name="l04481"></a><span class="lineno"> 4481</span>&#160; <span class="keywordtype">int</span> len, dist;</div>
+<div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160; <span class="keywordflow">if</span> (z == 256) {</div>
+<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160; a-&gt;zout = zout;</div>
+<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160; }</div>
+<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160; z -= 257;</div>
+<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160; len = stbi__zlength_base[z];</div>
+<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160; <span class="keywordflow">if</span> (stbi__zlength_extra[z])</div>
+<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160; len += stbi__zreceive(a, stbi__zlength_extra[z]);</div>
+<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160; z = stbi__zhuffman_decode(a, &amp;a-&gt;z_distance);</div>
+<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160; <span class="keywordflow">if</span> (z &lt; 0)</div>
+<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad huffman code&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160; dist = stbi__zdist_base[z];</div>
+<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160; <span class="keywordflow">if</span> (stbi__zdist_extra[z])</div>
+<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160; dist += stbi__zreceive(a, stbi__zdist_extra[z]);</div>
+<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160; <span class="keywordflow">if</span> (zout - a-&gt;zout_start &lt; dist)</div>
+<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad dist&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160; <span class="keywordflow">if</span> (zout + len &gt; a-&gt;zout_end) {</div>
+<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, zout, len))</div>
+<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160; zout = a-&gt;zout;</div>
+<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160; }</div>
+<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)(zout - dist);</div>
+<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160; <span class="keywordflow">if</span> (dist == 1) { <span class="comment">// run of one byte; common in images.</span></div>
+<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> v = *p;</div>
+<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160; <span class="keywordflow">if</span> (len) {</div>
+<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160; <span class="keywordflow">do</span></div>
+<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160; *zout++ = v;</div>
+<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160; <span class="keywordflow">while</span> (--len);</div>
+<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160; }</div>
+<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160; <span class="keywordflow">if</span> (len) {</div>
+<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160; <span class="keywordflow">do</span></div>
+<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160; *zout++ = *p++;</div>
+<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160; <span class="keywordflow">while</span> (--len);</div>
+<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160; }</div>
+<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160; }</div>
+<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160; }</div>
+<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160; }</div>
+<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160;}</div>
+<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;</div>
+<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_huffman_codes(stbi__zbuf *a)</div>
+<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;{</div>
+<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160; <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> length_dezigzag[19] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5,</div>
+<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160; 11, 4, 12, 3, 13, 2, 14, 1, 15};</div>
+<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160; stbi__zhuffman z_codelength;</div>
+<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lencodes[286 + 32 + 137]; <span class="comment">// padding for maximum single op</span></div>
+<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> codelength_sizes[19];</div>
+<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160; <span class="keywordtype">int</span> i, n;</div>
+<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160;</div>
+<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160; <span class="keywordtype">int</span> hlit = stbi__zreceive(a, 5) + 257;</div>
+<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160; <span class="keywordtype">int</span> hdist = stbi__zreceive(a, 5) + 1;</div>
+<div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160; <span class="keywordtype">int</span> hclen = stbi__zreceive(a, 4) + 4;</div>
+<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160; <span class="keywordtype">int</span> ntot = hlit + hdist;</div>
+<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;</div>
+<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160; memset(codelength_sizes, 0, <span class="keyword">sizeof</span>(codelength_sizes));</div>
+<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; hclen; ++i) {</div>
+<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160; <span class="keywordtype">int</span> s = stbi__zreceive(a, 3);</div>
+<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160; codelength_sizes[length_dezigzag[i]] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)s;</div>
+<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160; }</div>
+<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;z_codelength, codelength_sizes, 19))</div>
+<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;</div>
+<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160; n = 0;</div>
+<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160; <span class="keywordflow">while</span> (n &lt; ntot) {</div>
+<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160; <span class="keywordtype">int</span> c = stbi__zhuffman_decode(a, &amp;z_codelength);</div>
+<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160; <span class="keywordflow">if</span> (c &lt; 0 || c &gt;= 19)</div>
+<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160; <span class="keywordflow">if</span> (c &lt; 16)</div>
+<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160; lencodes[n++] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)c;</div>
+<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> fill = 0;</div>
+<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160; <span class="keywordflow">if</span> (c == 16) {</div>
+<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160; c = stbi__zreceive(a, 2) + 3;</div>
+<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160; <span class="keywordflow">if</span> (n == 0)</div>
+<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160; fill = lencodes[n - 1];</div>
+<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (c == 17)</div>
+<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160; c = stbi__zreceive(a, 3) + 3;</div>
+<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160; STBI_ASSERT(c == 18);</div>
+<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160; c = stbi__zreceive(a, 7) + 11;</div>
+<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160; }</div>
+<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160; <span class="keywordflow">if</span> (ntot - n &lt; c)</div>
+<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160; memset(lencodes + n, fill, c);</div>
+<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160; n += c;</div>
+<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160; }</div>
+<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160; }</div>
+<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160; <span class="keywordflow">if</span> (n != ntot)</div>
+<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad codelengths&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_length, lencodes, hlit))</div>
+<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_distance, lencodes + hlit, hdist))</div>
+<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;}</div>
+<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;</div>
+<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_uncompressed_block(stbi__zbuf *a)</div>
+<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160;{</div>
+<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> header[4];</div>
+<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160; <span class="keywordtype">int</span> len, nlen, k;</div>
+<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160; <span class="keywordflow">if</span> (a-&gt;num_bits &amp; 7)</div>
+<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160; stbi__zreceive(a, a-&gt;num_bits &amp; 7); <span class="comment">// discard</span></div>
+<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160; <span class="comment">// drain the bit-packed data into header</span></div>
+<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160; k = 0;</div>
+<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160; <span class="keywordflow">while</span> (a-&gt;num_bits &gt; 0) {</div>
+<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160; header[k++] =</div>
+<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160; (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(a-&gt;code_buffer &amp; 255); <span class="comment">// suppress MSVC run-time check</span></div>
+<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160; a-&gt;code_buffer &gt;&gt;= 8;</div>
+<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160; a-&gt;num_bits -= 8;</div>
+<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160; }</div>
+<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160; STBI_ASSERT(a-&gt;num_bits == 0);</div>
+<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160; <span class="comment">// now fill header the normal way</span></div>
+<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160; <span class="keywordflow">while</span> (k &lt; 4)</div>
+<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160; header[k++] = stbi__zget8(a);</div>
+<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160; len = header[1] * 256 + header[0];</div>
+<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160; nlen = header[3] * 256 + header[2];</div>
+<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160; <span class="keywordflow">if</span> (nlen != (len ^ 0xffff))</div>
+<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;zlib corrupt&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160; <span class="keywordflow">if</span> (a-&gt;zbuffer + len &gt; a-&gt;zbuffer_end)</div>
+<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;read past buffer&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160; <span class="keywordflow">if</span> (a-&gt;zout + len &gt; a-&gt;zout_end)</div>
+<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160; <span class="keywordflow">if</span> (!stbi__zexpand(a, a-&gt;zout, len))</div>
+<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160; memcpy(a-&gt;zout, a-&gt;zbuffer, len);</div>
+<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160; a-&gt;zbuffer += len;</div>
+<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160; a-&gt;zout += len;</div>
+<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>&#160;}</div>
+<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160;</div>
+<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_zlib_header(stbi__zbuf *a)</div>
+<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160;{</div>
+<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160; <span class="keywordtype">int</span> cmf = stbi__zget8(a);</div>
+<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160; <span class="keywordtype">int</span> cm = cmf &amp; 15;</div>
+<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160; <span class="comment">/* int cinfo = cmf &gt;&gt; 4; */</span></div>
+<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160; <span class="keywordtype">int</span> flg = stbi__zget8(a);</div>
+<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160; <span class="keywordflow">if</span> ((cmf * 256 + flg) % 31 != 0)</div>
+<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad zlib header&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// zlib spec</span></div>
+<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160; <span class="keywordflow">if</span> (flg &amp; 32)</div>
+<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no preset dict&quot;</span>,</div>
+<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160; <span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// preset dictionary not allowed in png</span></div>
+<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160; <span class="keywordflow">if</span> (cm != 8)</div>
+<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad compression&quot;</span>,</div>
+<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160; <span class="stringliteral">&quot;Corrupt PNG&quot;</span>); <span class="comment">// DEFLATE required for png</span></div>
+<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160; <span class="comment">// window = 1 &lt;&lt; (8 + cinfo)... but who cares, we fully buffer output</span></div>
+<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160; <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>&#160;}</div>
<div class="line"><a name="l04629"></a><span class="lineno"> 4629</span>&#160;</div>
-<div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b">stbi_convert_iphone_png_to_rgb</a>(<span class="keywordtype">int</span> flag_true_if_should_convert)</div>
-<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160;{</div>
-<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160; stbi__de_iphone_flag = flag_true_if_should_convert;</div>
-<div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>&#160;}</div>
-<div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>&#160;</div>
-<div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__de_iphone(stbi__png *z)</div>
-<div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>&#160;{</div>
-<div class="line"><a name="l04637"></a><span class="lineno"> 4637</span>&#160; stbi__context *s = z-&gt;s;</div>
-<div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
-<div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = z-&gt;out;</div>
-<div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>&#160;</div>
-<div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_out_n == 3) { <span class="comment">// convert bgr to rgb</span></div>
-<div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
-<div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>&#160; p[0] = p[2];</div>
-<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span>&#160; p[2] = t;</div>
-<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>&#160; p += 3;</div>
-<div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>&#160; }</div>
-<div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>&#160; STBI_ASSERT(s-&gt;img_out_n == 4);</div>
-<div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>&#160; <span class="keywordflow">if</span> (stbi__unpremultiply_on_load) {</div>
-<div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>&#160; <span class="comment">// convert bgr to rgb and unpremultiply</span></div>
-<div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04653"></a><span class="lineno"> 4653</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> a = p[3];</div>
-<div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
-<div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>&#160; <span class="keywordflow">if</span> (a) {</div>
-<div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> half = a / 2;</div>
-<div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>&#160; p[0] = (p[2] * 255 + half) / a;</div>
-<div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>&#160; p[1] = (p[1] * 255 + half) / a;</div>
-<div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>&#160; p[2] = ( t * 255 + half) / a;</div>
-<div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04661"></a><span class="lineno"> 4661</span>&#160; p[0] = p[2];</div>
-<div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>&#160; p[2] = t;</div>
-<div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>&#160; }</div>
-<div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>&#160; p += 4;</div>
-<div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>&#160; }</div>
-<div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>&#160; <span class="comment">// convert bgr to rgb</span></div>
-<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pixel_count; ++i) {</div>
-<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
-<div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>&#160; p[0] = p[2];</div>
-<div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>&#160; p[2] = t;</div>
-<div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>&#160; p += 4;</div>
-<div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>&#160; }</div>
-<div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>&#160; }</div>
-<div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>&#160; }</div>
-<div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>&#160;}</div>
-<div class="line"><a name="l04677"></a><span class="lineno"> 4677</span>&#160;</div>
-<div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>&#160;<span class="preprocessor">#define STBI__PNG_TYPE(a,b,c,d) (((a) &lt;&lt; 24) + ((b) &lt;&lt; 16) + ((c) &lt;&lt; 8) + (d))</span></div>
-<div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_png_file(stbi__png *z, <span class="keywordtype">int</span> scan, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>&#160;{</div>
-<div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> palette[1024], pal_img_n=0;</div>
-<div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> has_trans=0, tc[3];</div>
-<div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>&#160; stbi__uint16 tc16[3];</div>
-<div class="line"><a name="l04685"></a><span class="lineno"> 4685</span>&#160; stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;</div>
-<div class="line"><a name="l04686"></a><span class="lineno"> 4686</span>&#160; <span class="keywordtype">int</span> first=1,k,interlace=0, color=0, is_iphone=0;</div>
-<div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>&#160; stbi__context *s = z-&gt;s;</div>
-<div class="line"><a name="l04688"></a><span class="lineno"> 4688</span>&#160;</div>
-<div class="line"><a name="l04689"></a><span class="lineno"> 4689</span>&#160; z-&gt;expanded = NULL;</div>
-<div class="line"><a name="l04690"></a><span class="lineno"> 4690</span>&#160; z-&gt;idata = NULL;</div>
-<div class="line"><a name="l04691"></a><span class="lineno"> 4691</span>&#160; z-&gt;out = NULL;</div>
-<div class="line"><a name="l04692"></a><span class="lineno"> 4692</span>&#160;</div>
-<div class="line"><a name="l04693"></a><span class="lineno"> 4693</span>&#160; <span class="keywordflow">if</span> (!stbi__check_png_header(s)) <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zdefault_length[288] = {</div>
+<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>&#160; 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,</div>
+<div class="line"><a name="l04637"></a><span class="lineno"> 4637</span>&#160; 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,</div>
+<div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>&#160; 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,</div>
+<div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>&#160; 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,</div>
+<div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>&#160; 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,</div>
+<div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>&#160; 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7,</div>
+<div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>&#160; 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8};</div>
+<div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__zdefault_distance[32] = {</div>
+<div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>&#160; 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,</div>
+<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span>&#160; 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5};</div>
+<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>&#160;<span class="comment">Init algorithm:</span></div>
+<div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>&#160;<span class="comment">{</span></div>
+<div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>&#160;<span class="comment"> int i; // use &lt;= to match clearly with spec</span></div>
+<div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>&#160;<span class="comment"> for (i=0; i &lt;= 143; ++i) stbi__zdefault_length[i] = 8;</span></div>
+<div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>&#160;<span class="comment"> for ( ; i &lt;= 255; ++i) stbi__zdefault_length[i] = 9;</span></div>
+<div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>&#160;<span class="comment"> for ( ; i &lt;= 279; ++i) stbi__zdefault_length[i] = 7;</span></div>
+<div class="line"><a name="l04653"></a><span class="lineno"> 4653</span>&#160;<span class="comment"> for ( ; i &lt;= 287; ++i) stbi__zdefault_length[i] = 8;</span></div>
+<div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>&#160;<span class="comment"> for (i=0; i &lt;= 31; ++i) stbi__zdefault_distance[i] = 5;</span></div>
+<div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>&#160;<span class="comment">}</span></div>
+<div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>&#160;</div>
+<div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_zlib(stbi__zbuf *a, <span class="keywordtype">int</span> parse_header)</div>
+<div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>&#160;{</div>
+<div class="line"><a name="l04661"></a><span class="lineno"> 4661</span>&#160; <span class="keywordtype">int</span> <span class="keyword">final</span>, type;</div>
+<div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>&#160; <span class="keywordflow">if</span> (parse_header)</div>
+<div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_zlib_header(a))</div>
+<div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>&#160; a-&gt;num_bits = 0;</div>
+<div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>&#160; a-&gt;code_buffer = 0;</div>
+<div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160; <span class="keyword">final</span> = stbi__zreceive(a, 1);</div>
+<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160; type = stbi__zreceive(a, 2);</div>
+<div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>&#160; <span class="keywordflow">if</span> (type == 0) {</div>
+<div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_uncompressed_block(a))</div>
+<div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == 3) {</div>
+<div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>&#160; <span class="keywordflow">if</span> (type == 1) {</div>
+<div class="line"><a name="l04677"></a><span class="lineno"> 4677</span>&#160; <span class="comment">// use fixed code lengths</span></div>
+<div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_length, stbi__zdefault_length,</div>
+<div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>&#160; 288))</div>
+<div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>&#160; <span class="keywordflow">if</span> (!stbi__zbuild_huffman(&amp;a-&gt;z_distance,</div>
+<div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>&#160; stbi__zdefault_distance, 32))</div>
+<div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04685"></a><span class="lineno"> 4685</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_huffman_codes(a))</div>
+<div class="line"><a name="l04686"></a><span class="lineno"> 4686</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>&#160; }</div>
+<div class="line"><a name="l04688"></a><span class="lineno"> 4688</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_huffman_block(a))</div>
+<div class="line"><a name="l04689"></a><span class="lineno"> 4689</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04690"></a><span class="lineno"> 4690</span>&#160; }</div>
+<div class="line"><a name="l04691"></a><span class="lineno"> 4691</span>&#160; } <span class="keywordflow">while</span> (!<span class="keyword">final</span>);</div>
+<div class="line"><a name="l04692"></a><span class="lineno"> 4692</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04693"></a><span class="lineno"> 4693</span>&#160;}</div>
<div class="line"><a name="l04694"></a><span class="lineno"> 4694</span>&#160;</div>
-<div class="line"><a name="l04695"></a><span class="lineno"> 4695</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_type) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04696"></a><span class="lineno"> 4696</span>&#160;</div>
-<div class="line"><a name="l04697"></a><span class="lineno"> 4697</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
-<div class="line"><a name="l04698"></a><span class="lineno"> 4698</span>&#160; stbi__pngchunk c = stbi__get_chunk_header(s);</div>
-<div class="line"><a name="l04699"></a><span class="lineno"> 4699</span>&#160; <span class="keywordflow">switch</span> (c.type) {</div>
-<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;C&#39;</span>,<span class="charliteral">&#39;g&#39;</span>,<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;I&#39;</span>):</div>
-<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160; is_iphone = 1;</div>
-<div class="line"><a name="l04702"></a><span class="lineno"> 4702</span>&#160; stbi__skip(s, c.length);</div>
-<div class="line"><a name="l04703"></a><span class="lineno"> 4703</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04704"></a><span class="lineno"> 4704</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>,<span class="charliteral">&#39;H&#39;</span>,<span class="charliteral">&#39;D&#39;</span>,<span class="charliteral">&#39;R&#39;</span>): {</div>
-<div class="line"><a name="l04705"></a><span class="lineno"> 4705</span>&#160; <span class="keywordtype">int</span> comp,filter;</div>
-<div class="line"><a name="l04706"></a><span class="lineno"> 4706</span>&#160; <span class="keywordflow">if</span> (!first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;multiple IHDR&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>&#160; first = 0;</div>
-<div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>&#160; <span class="keywordflow">if</span> (c.length != 13) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad IHDR len&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04709"></a><span class="lineno"> 4709</span>&#160; s-&gt;img_x = stbi__get32be(s); <span class="keywordflow">if</span> (s-&gt;img_x &gt; (1 &lt;&lt; 24)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>,<span class="stringliteral">&quot;Very large image (corrupt?)&quot;</span>);</div>
-<div class="line"><a name="l04710"></a><span class="lineno"> 4710</span>&#160; s-&gt;img_y = stbi__get32be(s); <span class="keywordflow">if</span> (s-&gt;img_y &gt; (1 &lt;&lt; 24)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>,<span class="stringliteral">&quot;Very large image (corrupt?)&quot;</span>);</div>
-<div class="line"><a name="l04711"></a><span class="lineno"> 4711</span>&#160; z-&gt;depth = stbi__get8(s); <span class="keywordflow">if</span> (z-&gt;depth != 1 &amp;&amp; z-&gt;depth != 2 &amp;&amp; z-&gt;depth != 4 &amp;&amp; z-&gt;depth != 8 &amp;&amp; z-&gt;depth != 16) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;1/2/4/8/16-bit only&quot;</span>,<span class="stringliteral">&quot;PNG not supported: 1/2/4/8/16-bit only&quot;</span>);</div>
-<div class="line"><a name="l04712"></a><span class="lineno"> 4712</span>&#160; color = stbi__get8(s); <span class="keywordflow">if</span> (color &gt; 6) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04713"></a><span class="lineno"> 4713</span>&#160; <span class="keywordflow">if</span> (color == 3 &amp;&amp; z-&gt;depth == 16) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>&#160; <span class="keywordflow">if</span> (color == 3) pal_img_n = 3; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (color &amp; 1) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>&#160; comp = stbi__get8(s); <span class="keywordflow">if</span> (comp) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad comp method&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>&#160; filter= stbi__get8(s); <span class="keywordflow">if</span> (filter) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad filter method&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04717"></a><span class="lineno"> 4717</span>&#160; interlace = stbi__get8(s); <span class="keywordflow">if</span> (interlace&gt;1) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad interlace method&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>&#160; <span class="keywordflow">if</span> (!s-&gt;img_x || !s-&gt;img_y) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;0-pixel image&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>&#160; <span class="keywordflow">if</span> (!pal_img_n) {</div>
-<div class="line"><a name="l04720"></a><span class="lineno"> 4720</span>&#160; s-&gt;img_n = (color &amp; 2 ? 3 : 1) + (color &amp; 4 ? 1 : 0);</div>
-<div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>&#160; <span class="keywordflow">if</span> ((1 &lt;&lt; 30) / s-&gt;img_x / s-&gt;img_n &lt; s-&gt;img_y) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Image too large to decode&quot;</span>);</div>
-<div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04724"></a><span class="lineno"> 4724</span>&#160; <span class="comment">// if paletted, then pal_n is our final components, and</span></div>
-<div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>&#160; <span class="comment">// img_n is # components to decompress/filter.</span></div>
-<div class="line"><a name="l04726"></a><span class="lineno"> 4726</span>&#160; s-&gt;img_n = 1;</div>
-<div class="line"><a name="l04727"></a><span class="lineno"> 4727</span>&#160; <span class="keywordflow">if</span> ((1 &lt;&lt; 30) / s-&gt;img_x / 4 &lt; s-&gt;img_y) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>&#160; <span class="comment">// if SCAN_header, have to scan to see if we have a tRNS</span></div>
-<div class="line"><a name="l04729"></a><span class="lineno"> 4729</span>&#160; }</div>
-<div class="line"><a name="l04730"></a><span class="lineno"> 4730</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160; }</div>
-<div class="line"><a name="l04732"></a><span class="lineno"> 4732</span>&#160;</div>
-<div class="line"><a name="l04733"></a><span class="lineno"> 4733</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;P&#39;</span>,<span class="charliteral">&#39;L&#39;</span>,<span class="charliteral">&#39;T&#39;</span>,<span class="charliteral">&#39;E&#39;</span>): {</div>
-<div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>&#160; <span class="keywordflow">if</span> (c.length &gt; 256*3) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid PLTE&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>&#160; pal_len = c.length / 3;</div>
-<div class="line"><a name="l04737"></a><span class="lineno"> 4737</span>&#160; <span class="keywordflow">if</span> (pal_len * 3 != c.length) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid PLTE&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; pal_len; ++i) {</div>
-<div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>&#160; palette[i*4+0] = stbi__get8(s);</div>
-<div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>&#160; palette[i*4+1] = stbi__get8(s);</div>
-<div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>&#160; palette[i*4+2] = stbi__get8(s);</div>
-<div class="line"><a name="l04742"></a><span class="lineno"> 4742</span>&#160; palette[i*4+3] = 255;</div>
-<div class="line"><a name="l04743"></a><span class="lineno"> 4743</span>&#160; }</div>
-<div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>&#160; }</div>
-<div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>&#160;</div>
-<div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;t&#39;</span>,<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;S&#39;</span>): {</div>
-<div class="line"><a name="l04748"></a><span class="lineno"> 4748</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>&#160; <span class="keywordflow">if</span> (z-&gt;idata) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS after IDAT&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>&#160; <span class="keywordflow">if</span> (pal_img_n) {</div>
-<div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header) { s-&gt;img_n = 4; <span class="keywordflow">return</span> 1; }</div>
-<div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>&#160; <span class="keywordflow">if</span> (pal_len == 0) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS before PLTE&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>&#160; <span class="keywordflow">if</span> (c.length &gt; pal_len) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad tRNS len&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>&#160; pal_img_n = 4;</div>
-<div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; c.length; ++i)</div>
-<div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>&#160; palette[i*4+3] = stbi__get8(s);</div>
-<div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04758"></a><span class="lineno"> 4758</span>&#160; <span class="keywordflow">if</span> (!(s-&gt;img_n &amp; 1)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS with alpha&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>&#160; <span class="keywordflow">if</span> (c.length != (stbi__uint32) s-&gt;img_n*2) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad tRNS len&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>&#160; has_trans = 1;</div>
-<div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>&#160; <span class="keywordflow">if</span> (z-&gt;depth == 16) {</div>
-<div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; s-&gt;img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); <span class="comment">// copy the values as-is</span></div>
-<div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; s-&gt;img_n; ++k) tc[k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(stbi__get16be(s) &amp; 255) * stbi__depth_scale_table[z-&gt;depth]; <span class="comment">// non 8-bit images will be larger</span></div>
-<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160; }</div>
-<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160; }</div>
-<div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04768"></a><span class="lineno"> 4768</span>&#160; }</div>
-<div class="line"><a name="l04769"></a><span class="lineno"> 4769</span>&#160;</div>
-<div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>,<span class="charliteral">&#39;D&#39;</span>,<span class="charliteral">&#39;A&#39;</span>,<span class="charliteral">&#39;T&#39;</span>): {</div>
-<div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>&#160; <span class="keywordflow">if</span> (pal_img_n &amp;&amp; !pal_len) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no PLTE&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header) { s-&gt;img_n = pal_img_n; <span class="keywordflow">return</span> 1; }</div>
-<div class="line"><a name="l04774"></a><span class="lineno"> 4774</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)(ioff + c.length) &lt; (<span class="keywordtype">int</span>)ioff) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>&#160; <span class="keywordflow">if</span> (ioff + c.length &gt; idata_limit) {</div>
-<div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>&#160; stbi__uint32 idata_limit_old = idata_limit;</div>
-<div class="line"><a name="l04777"></a><span class="lineno"> 4777</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
-<div class="line"><a name="l04778"></a><span class="lineno"> 4778</span>&#160; <span class="keywordflow">if</span> (idata_limit == 0) idata_limit = c.length &gt; 4096 ? c.length : 4096;</div>
-<div class="line"><a name="l04779"></a><span class="lineno"> 4779</span>&#160; <span class="keywordflow">while</span> (ioff + c.length &gt; idata_limit)</div>
-<div class="line"><a name="l04780"></a><span class="lineno"> 4780</span>&#160; idata_limit *= 2;</div>
-<div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>&#160; STBI_NOTUSED(idata_limit_old);</div>
-<div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) STBI_REALLOC_SIZED(z-&gt;idata, idata_limit_old, idata_limit); <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>&#160; z-&gt;idata = p;</div>
-<div class="line"><a name="l04784"></a><span class="lineno"> 4784</span>&#160; }</div>
-<div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>&#160; <span class="keywordflow">if</span> (!stbi__getn(s, z-&gt;idata+ioff,c.length)) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofdata&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>&#160; ioff += c.length;</div>
-<div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04788"></a><span class="lineno"> 4788</span>&#160; }</div>
-<div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>&#160;</div>
-<div class="line"><a name="l04790"></a><span class="lineno"> 4790</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>,<span class="charliteral">&#39;E&#39;</span>,<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;D&#39;</span>): {</div>
-<div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>&#160; stbi__uint32 raw_len, bpl;</div>
-<div class="line"><a name="l04792"></a><span class="lineno"> 4792</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>&#160; <span class="keywordflow">if</span> (scan != STBI__SCAN_load) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>&#160; <span class="keywordflow">if</span> (z-&gt;idata == NULL) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no IDAT&quot;</span>,<span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>&#160; <span class="comment">// initial guess for decoded data size to avoid unnecessary reallocs</span></div>
-<div class="line"><a name="l04796"></a><span class="lineno"> 4796</span>&#160; bpl = (s-&gt;img_x * z-&gt;depth + 7) / 8; <span class="comment">// bytes per line, per component</span></div>
-<div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>&#160; raw_len = bpl * s-&gt;img_y * s-&gt;img_n <span class="comment">/* pixels */</span> + s-&gt;img_y <span class="comment">/* filter mode per row */</span>;</div>
-<div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>&#160; z-&gt;expanded = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) <a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>((<span class="keywordtype">char</span> *) z-&gt;idata, ioff, raw_len, (<span class="keywordtype">int</span> *) &amp;raw_len, !is_iphone);</div>
-<div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>&#160; <span class="keywordflow">if</span> (z-&gt;expanded == NULL) <span class="keywordflow">return</span> 0; <span class="comment">// zlib should set error</span></div>
-<div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>&#160; STBI_FREE(z-&gt;idata); z-&gt;idata = NULL;</div>
-<div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>&#160; <span class="keywordflow">if</span> ((req_comp == s-&gt;img_n+1 &amp;&amp; req_comp != 3 &amp;&amp; !pal_img_n) || has_trans)</div>
-<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160; s-&gt;img_out_n = s-&gt;img_n+1;</div>
-<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>&#160; s-&gt;img_out_n = s-&gt;img_n;</div>
-<div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>&#160; <span class="keywordflow">if</span> (!stbi__create_png_image(z, z-&gt;expanded, raw_len, s-&gt;img_out_n, z-&gt;depth, color, interlace)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04806"></a><span class="lineno"> 4806</span>&#160; <span class="keywordflow">if</span> (has_trans) {</div>
-<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>&#160; <span class="keywordflow">if</span> (z-&gt;depth == 16) {</div>
-<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_transparency16(z, tc16, s-&gt;img_out_n)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_transparency(z, tc, s-&gt;img_out_n)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>&#160; }</div>
-<div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>&#160; }</div>
-<div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>&#160; <span class="keywordflow">if</span> (is_iphone &amp;&amp; stbi__de_iphone_flag &amp;&amp; s-&gt;img_out_n &gt; 2)</div>
-<div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>&#160; stbi__de_iphone(z);</div>
-<div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>&#160; <span class="keywordflow">if</span> (pal_img_n) {</div>
-<div class="line"><a name="l04816"></a><span class="lineno"> 4816</span>&#160; <span class="comment">// pal_img_n == 3 or 4</span></div>
-<div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>&#160; s-&gt;img_n = pal_img_n; <span class="comment">// record the actual colors we had</span></div>
-<div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>&#160; s-&gt;img_out_n = pal_img_n;</div>
-<div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>&#160; <span class="keywordflow">if</span> (req_comp &gt;= 3) s-&gt;img_out_n = req_comp;</div>
-<div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>&#160; <span class="keywordflow">if</span> (!stbi__expand_png_palette(z, palette, pal_len, s-&gt;img_out_n))</div>
-<div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (has_trans) {</div>
-<div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>&#160; <span class="comment">// non-paletted image with tRNS -&gt; source image has (constant) alpha</span></div>
-<div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>&#160; ++s-&gt;img_n;</div>
-<div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>&#160; }</div>
-<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160; STBI_FREE(z-&gt;expanded); z-&gt;expanded = NULL;</div>
-<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>&#160; }</div>
+<div class="line"><a name="l04695"></a><span class="lineno"> 4695</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__do_zlib(stbi__zbuf *a, <span class="keywordtype">char</span> *obuf, <span class="keywordtype">int</span> olen, <span class="keywordtype">int</span> exp,</div>
+<div class="line"><a name="l04696"></a><span class="lineno"> 4696</span>&#160; <span class="keywordtype">int</span> parse_header)</div>
+<div class="line"><a name="l04697"></a><span class="lineno"> 4697</span>&#160;{</div>
+<div class="line"><a name="l04698"></a><span class="lineno"> 4698</span>&#160; a-&gt;zout_start = obuf;</div>
+<div class="line"><a name="l04699"></a><span class="lineno"> 4699</span>&#160; a-&gt;zout = obuf;</div>
+<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160; a-&gt;zout_end = obuf + olen;</div>
+<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160; a-&gt;z_expandable = exp;</div>
+<div class="line"><a name="l04702"></a><span class="lineno"> 4702</span>&#160;</div>
+<div class="line"><a name="l04703"></a><span class="lineno"> 4703</span>&#160; <span class="keywordflow">return</span> stbi__parse_zlib(a, parse_header);</div>
+<div class="line"><a name="l04704"></a><span class="lineno"> 4704</span>&#160;}</div>
+<div class="line"><a name="l04705"></a><span class="lineno"> 4705</span>&#160;</div>
+<div class="line"><a name="l04706"></a><span class="lineno"> 4706</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>&#160; <span class="keywordtype">int</span> initial_size, <span class="keywordtype">int</span> *outlen)</div>
+<div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>&#160;{</div>
+<div class="line"><a name="l04709"></a><span class="lineno"> 4709</span>&#160; stbi__zbuf a;</div>
+<div class="line"><a name="l04710"></a><span class="lineno"> 4710</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *)stbi__malloc(initial_size);</div>
+<div class="line"><a name="l04711"></a><span class="lineno"> 4711</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l04712"></a><span class="lineno"> 4712</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04713"></a><span class="lineno"> 4713</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer;</div>
+<div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer + len;</div>
+<div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, initial_size, 1, 1)) {</div>
+<div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>&#160; <span class="keywordflow">if</span> (outlen)</div>
+<div class="line"><a name="l04717"></a><span class="lineno"> 4717</span>&#160; *outlen = (int)(a.zout - a.zout_start);</div>
+<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
+<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04720"></a><span class="lineno"> 4720</span>&#160; STBI_FREE(a.zout_start);</div>
+<div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>&#160; }</div>
+<div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>&#160;}</div>
+<div class="line"><a name="l04724"></a><span class="lineno"> 4724</span>&#160;</div>
+<div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a4919b67b12e0e3acc5301f185ca77e2e">stbi_zlib_decode_malloc</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *outlen)</div>
+<div class="line"><a name="l04726"></a><span class="lineno"> 4726</span>&#160;{</div>
+<div class="line"><a name="l04727"></a><span class="lineno"> 4727</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a>(buffer, len, 16384, outlen);</div>
+<div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>&#160;}</div>
+<div class="line"><a name="l04729"></a><span class="lineno"> 4729</span>&#160;</div>
+<div class="line"><a name="l04730"></a><span class="lineno"> 4730</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer,</div>
+<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160; <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l04732"></a><span class="lineno"> 4732</span>&#160; <span class="keywordtype">int</span> initial_size,</div>
+<div class="line"><a name="l04733"></a><span class="lineno"> 4733</span>&#160; <span class="keywordtype">int</span> *outlen,</div>
+<div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>&#160; <span class="keywordtype">int</span> parse_header)</div>
+<div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>&#160;{</div>
+<div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>&#160; stbi__zbuf a;</div>
+<div class="line"><a name="l04737"></a><span class="lineno"> 4737</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *)stbi__malloc(initial_size);</div>
+<div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer;</div>
+<div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer + len;</div>
+<div class="line"><a name="l04742"></a><span class="lineno"> 4742</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, initial_size, 1, parse_header)) {</div>
+<div class="line"><a name="l04743"></a><span class="lineno"> 4743</span>&#160; <span class="keywordflow">if</span> (outlen)</div>
+<div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>&#160; *outlen = (int)(a.zout - a.zout_start);</div>
+<div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
+<div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>&#160; STBI_FREE(a.zout_start);</div>
+<div class="line"><a name="l04748"></a><span class="lineno"> 4748</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>&#160; }</div>
+<div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>&#160;}</div>
+<div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>&#160;</div>
+<div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#ae8447830c49bc17f8491e12c1f0ded48">stbi_zlib_decode_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen,</div>
+<div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>&#160; <span class="keywordtype">char</span> <span class="keyword">const</span> *ibuffer, <span class="keywordtype">int</span> ilen)</div>
+<div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>&#160;{</div>
+<div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>&#160; stbi__zbuf a;</div>
+<div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)ibuffer;</div>
+<div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)ibuffer + ilen;</div>
+<div class="line"><a name="l04758"></a><span class="lineno"> 4758</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, obuffer, olen, 0, 1))</div>
+<div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(a.zout - a.zout_start);</div>
+<div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>&#160;}</div>
+<div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>&#160;</div>
+<div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">char</span> *<a class="code" href="stb__image_8h.html#a7fbd65c83495f13f22469fe493775739">stbi_zlib_decode_noheader_malloc</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160; <span class="keywordtype">int</span> *outlen)</div>
+<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160;{</div>
+<div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>&#160; stbi__zbuf a;</div>
+<div class="line"><a name="l04768"></a><span class="lineno"> 4768</span>&#160; <span class="keywordtype">char</span> *p = (<span class="keywordtype">char</span> *)stbi__malloc(16384);</div>
+<div class="line"><a name="l04769"></a><span class="lineno"> 4769</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer;</div>
+<div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)buffer + len;</div>
+<div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, p, 16384, 1, 0)) {</div>
+<div class="line"><a name="l04774"></a><span class="lineno"> 4774</span>&#160; <span class="keywordflow">if</span> (outlen)</div>
+<div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>&#160; *outlen = (int)(a.zout - a.zout_start);</div>
+<div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>&#160; <span class="keywordflow">return</span> a.zout_start;</div>
+<div class="line"><a name="l04777"></a><span class="lineno"> 4777</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04778"></a><span class="lineno"> 4778</span>&#160; STBI_FREE(a.zout_start);</div>
+<div class="line"><a name="l04779"></a><span class="lineno"> 4779</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l04780"></a><span class="lineno"> 4780</span>&#160; }</div>
+<div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>&#160;}</div>
+<div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>&#160;</div>
+<div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a0d12efc011adfff7521f3b924feb0b0e">stbi_zlib_decode_noheader_buffer</a>(<span class="keywordtype">char</span> *obuffer, <span class="keywordtype">int</span> olen,</div>
+<div class="line"><a name="l04784"></a><span class="lineno"> 4784</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *ibuffer, <span class="keywordtype">int</span> ilen)</div>
+<div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>&#160;{</div>
+<div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>&#160; stbi__zbuf a;</div>
+<div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>&#160; a.zbuffer = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)ibuffer;</div>
+<div class="line"><a name="l04788"></a><span class="lineno"> 4788</span>&#160; a.zbuffer_end = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)ibuffer + ilen;</div>
+<div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>&#160; <span class="keywordflow">if</span> (stbi__do_zlib(&amp;a, obuffer, olen, 0, 0))</div>
+<div class="line"><a name="l04790"></a><span class="lineno"> 4790</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(a.zout - a.zout_start);</div>
+<div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04792"></a><span class="lineno"> 4792</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>&#160;}</div>
+<div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l04796"></a><span class="lineno"> 4796</span>&#160; <span class="comment">// public domain &quot;baseline&quot; PNG decoder v0.10 Sean Barrett 2006-11-18</span></div>
+<div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>&#160; <span class="comment">// simple implementation</span></div>
+<div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>&#160; <span class="comment">// - only 8-bit samples</span></div>
+<div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>&#160; <span class="comment">// - no CRC checking</span></div>
+<div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>&#160; <span class="comment">// - allocates lots of intermediate memory</span></div>
+<div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>&#160; <span class="comment">// - avoids problem of streaming data between subsystems</span></div>
+<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160; <span class="comment">// - avoids explicit window management</span></div>
+<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160; <span class="comment">// performance</span></div>
+<div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>&#160; <span class="comment">// - uses stb_zlib, a PD zlib implementation with fast huffman decoding</span></div>
+<div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>&#160;</div>
+<div class="line"><a name="l04806"></a><span class="lineno"> 4806</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
+<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>&#160; stbi__uint32 length;</div>
+<div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>&#160; stbi__uint32 type;</div>
+<div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>&#160;} stbi__pngchunk;</div>
+<div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>&#160;</div>
+<div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>&#160;<span class="keyword">static</span> stbi__pngchunk stbi__get_chunk_header(stbi__context *s)</div>
+<div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>&#160;{</div>
+<div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>&#160; stbi__pngchunk c;</div>
+<div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>&#160; c.length = stbi__get32be(s);</div>
+<div class="line"><a name="l04816"></a><span class="lineno"> 4816</span>&#160; c.type = stbi__get32be(s);</div>
+<div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>&#160; <span class="keywordflow">return</span> c;</div>
+<div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>&#160;}</div>
+<div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>&#160;</div>
+<div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__check_png_header(stbi__context *s)</div>
+<div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>&#160;{</div>
+<div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>&#160; <span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10};</div>
+<div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 8; ++i)</div>
+<div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != png_sig[i])</div>
+<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad png sig&quot;</span>, <span class="stringliteral">&quot;Not a PNG&quot;</span>);</div>
+<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>&#160;}</div>
<div class="line"><a name="l04829"></a><span class="lineno"> 4829</span>&#160;</div>
-<div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>&#160; <span class="comment">// if critical, fail</span></div>
-<div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
-<div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>&#160; <span class="keywordflow">if</span> ((c.type &amp; (1 &lt;&lt; 29)) == 0) {</div>
-<div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_FAILURE_STRINGS</span></div>
-<div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>&#160;<span class="preprocessor"></span> <span class="comment">// not threadsafe</span></div>
-<div class="line"><a name="l04836"></a><span class="lineno"> 4836</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span> invalid_chunk[] = <span class="stringliteral">&quot;XXXX PNG chunk not known&quot;</span>;</div>
-<div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>&#160; invalid_chunk[0] = STBI__BYTECAST(c.type &gt;&gt; 24);</div>
-<div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>&#160; invalid_chunk[1] = STBI__BYTECAST(c.type &gt;&gt; 16);</div>
-<div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>&#160; invalid_chunk[2] = STBI__BYTECAST(c.type &gt;&gt; 8);</div>
-<div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>&#160; invalid_chunk[3] = STBI__BYTECAST(c.type &gt;&gt; 0);</div>
-<div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> stbi__err(invalid_chunk, <span class="stringliteral">&quot;PNG not supported: unknown PNG chunk type&quot;</span>);</div>
-<div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>&#160; }</div>
-<div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>&#160; stbi__skip(s, c.length);</div>
-<div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l04846"></a><span class="lineno"> 4846</span>&#160; }</div>
-<div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>&#160; <span class="comment">// end of PNG chunk, read and skip CRC</span></div>
-<div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>&#160; stbi__get32be(s);</div>
-<div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>&#160; }</div>
-<div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>&#160;}</div>
-<div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>&#160;</div>
-<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__do_png(stbi__png *p, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *n, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>&#160;{</div>
-<div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>&#160; <span class="keywordtype">void</span> *result=NULL;</div>
-<div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>&#160; <span class="keywordflow">if</span> (req_comp &lt; 0 || req_comp &gt; 4) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad req_comp&quot;</span>, <span class="stringliteral">&quot;Internal error&quot;</span>);</div>
-<div class="line"><a name="l04856"></a><span class="lineno"> 4856</span>&#160; <span class="keywordflow">if</span> (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {</div>
-<div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>&#160; <span class="keywordflow">if</span> (p-&gt;depth &lt; 8)</div>
-<div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>&#160; ri-&gt;bits_per_channel = 8;</div>
-<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160; ri-&gt;bits_per_channel = p-&gt;depth;</div>
-<div class="line"><a name="l04861"></a><span class="lineno"> 4861</span>&#160; result = p-&gt;out;</div>
-<div class="line"><a name="l04862"></a><span class="lineno"> 4862</span>&#160; p-&gt;out = NULL;</div>
-<div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != p-&gt;s-&gt;img_out_n) {</div>
-<div class="line"><a name="l04864"></a><span class="lineno"> 4864</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 8)</div>
-<div class="line"><a name="l04865"></a><span class="lineno"> 4865</span>&#160; result = stbi__convert_format((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *) result, p-&gt;s-&gt;img_out_n, req_comp, p-&gt;s-&gt;img_x, p-&gt;s-&gt;img_y);</div>
-<div class="line"><a name="l04866"></a><span class="lineno"> 4866</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04867"></a><span class="lineno"> 4867</span>&#160; result = stbi__convert_format16((stbi__uint16 *) result, p-&gt;s-&gt;img_out_n, req_comp, p-&gt;s-&gt;img_x, p-&gt;s-&gt;img_y);</div>
-<div class="line"><a name="l04868"></a><span class="lineno"> 4868</span>&#160; p-&gt;s-&gt;img_out_n = req_comp;</div>
-<div class="line"><a name="l04869"></a><span class="lineno"> 4869</span>&#160; <span class="keywordflow">if</span> (result == NULL) <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l04870"></a><span class="lineno"> 4870</span>&#160; }</div>
-<div class="line"><a name="l04871"></a><span class="lineno"> 4871</span>&#160; *x = p-&gt;s-&gt;img_x;</div>
-<div class="line"><a name="l04872"></a><span class="lineno"> 4872</span>&#160; *y = p-&gt;s-&gt;img_y;</div>
-<div class="line"><a name="l04873"></a><span class="lineno"> 4873</span>&#160; <span class="keywordflow">if</span> (n) *n = p-&gt;s-&gt;img_n;</div>
-<div class="line"><a name="l04874"></a><span class="lineno"> 4874</span>&#160; }</div>
-<div class="line"><a name="l04875"></a><span class="lineno"> 4875</span>&#160; STBI_FREE(p-&gt;out); p-&gt;out = NULL;</div>
-<div class="line"><a name="l04876"></a><span class="lineno"> 4876</span>&#160; STBI_FREE(p-&gt;expanded); p-&gt;expanded = NULL;</div>
-<div class="line"><a name="l04877"></a><span class="lineno"> 4877</span>&#160; STBI_FREE(p-&gt;idata); p-&gt;idata = NULL;</div>
-<div class="line"><a name="l04878"></a><span class="lineno"> 4878</span>&#160;</div>
-<div class="line"><a name="l04879"></a><span class="lineno"> 4879</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l04880"></a><span class="lineno"> 4880</span>&#160;}</div>
-<div class="line"><a name="l04881"></a><span class="lineno"> 4881</span>&#160;</div>
-<div class="line"><a name="l04882"></a><span class="lineno"> 4882</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__png_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l04883"></a><span class="lineno"> 4883</span>&#160;{</div>
-<div class="line"><a name="l04884"></a><span class="lineno"> 4884</span>&#160; stbi__png p;</div>
-<div class="line"><a name="l04885"></a><span class="lineno"> 4885</span>&#160; p.s = s;</div>
-<div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>&#160; <span class="keywordflow">return</span> stbi__do_png(&amp;p, x,y,comp,req_comp, ri);</div>
-<div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>&#160;}</div>
-<div class="line"><a name="l04888"></a><span class="lineno"> 4888</span>&#160;</div>
-<div class="line"><a name="l04889"></a><span class="lineno"> 4889</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_test(stbi__context *s)</div>
-<div class="line"><a name="l04890"></a><span class="lineno"> 4890</span>&#160;{</div>
-<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span>&#160; <span class="keywordtype">int</span> r;</div>
-<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>&#160; r = stbi__check_png_header(s);</div>
-<div class="line"><a name="l04893"></a><span class="lineno"> 4893</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>&#160;}</div>
-<div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>&#160;</div>
-<div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info_raw(stbi__png *p, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>&#160;{</div>
-<div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {</div>
-<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160; stbi__rewind( p-&gt;s );</div>
-<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04902"></a><span class="lineno"> 4902</span>&#160; }</div>
-<div class="line"><a name="l04903"></a><span class="lineno"> 4903</span>&#160; <span class="keywordflow">if</span> (x) *x = p-&gt;s-&gt;img_x;</div>
-<div class="line"><a name="l04904"></a><span class="lineno"> 4904</span>&#160; <span class="keywordflow">if</span> (y) *y = p-&gt;s-&gt;img_y;</div>
-<div class="line"><a name="l04905"></a><span class="lineno"> 4905</span>&#160; <span class="keywordflow">if</span> (comp) *comp = p-&gt;s-&gt;img_n;</div>
-<div class="line"><a name="l04906"></a><span class="lineno"> 4906</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l04907"></a><span class="lineno"> 4907</span>&#160;}</div>
-<div class="line"><a name="l04908"></a><span class="lineno"> 4908</span>&#160;</div>
-<div class="line"><a name="l04909"></a><span class="lineno"> 4909</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l04910"></a><span class="lineno"> 4910</span>&#160;{</div>
-<div class="line"><a name="l04911"></a><span class="lineno"> 4911</span>&#160; stbi__png p;</div>
-<div class="line"><a name="l04912"></a><span class="lineno"> 4912</span>&#160; p.s = s;</div>
-<div class="line"><a name="l04913"></a><span class="lineno"> 4913</span>&#160; <span class="keywordflow">return</span> stbi__png_info_raw(&amp;p, x, y, comp);</div>
-<div class="line"><a name="l04914"></a><span class="lineno"> 4914</span>&#160;}</div>
-<div class="line"><a name="l04915"></a><span class="lineno"> 4915</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04916"></a><span class="lineno"> 4916</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l04917"></a><span class="lineno"> 4917</span>&#160;<span class="comment">// Microsoft/Windows BMP image</span></div>
-<div class="line"><a name="l04918"></a><span class="lineno"> 4918</span>&#160;</div>
-<div class="line"><a name="l04919"></a><span class="lineno"> 4919</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l04920"></a><span class="lineno"> 4920</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test_raw(stbi__context *s)</div>
-<div class="line"><a name="l04921"></a><span class="lineno"> 4921</span>&#160;{</div>
-<div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>&#160; <span class="keywordtype">int</span> r;</div>
-<div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>&#160; <span class="keywordtype">int</span> sz;</div>
-<div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;B&#39;</span>) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;M&#39;</span>) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l04926"></a><span class="lineno"> 4926</span>&#160; stbi__get32le(s); <span class="comment">// discard filesize</span></div>
-<div class="line"><a name="l04927"></a><span class="lineno"> 4927</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
-<div class="line"><a name="l04928"></a><span class="lineno"> 4928</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
-<div class="line"><a name="l04929"></a><span class="lineno"> 4929</span>&#160; stbi__get32le(s); <span class="comment">// discard data offset</span></div>
-<div class="line"><a name="l04930"></a><span class="lineno"> 4930</span>&#160; sz = stbi__get32le(s);</div>
-<div class="line"><a name="l04931"></a><span class="lineno"> 4931</span>&#160; r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);</div>
-<div class="line"><a name="l04932"></a><span class="lineno"> 4932</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l04933"></a><span class="lineno"> 4933</span>&#160;}</div>
-<div class="line"><a name="l04934"></a><span class="lineno"> 4934</span>&#160;</div>
-<div class="line"><a name="l04935"></a><span class="lineno"> 4935</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test(stbi__context *s)</div>
-<div class="line"><a name="l04936"></a><span class="lineno"> 4936</span>&#160;{</div>
-<div class="line"><a name="l04937"></a><span class="lineno"> 4937</span>&#160; <span class="keywordtype">int</span> r = stbi__bmp_test_raw(s);</div>
-<div class="line"><a name="l04938"></a><span class="lineno"> 4938</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l04939"></a><span class="lineno"> 4939</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l04940"></a><span class="lineno"> 4940</span>&#160;}</div>
-<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span>&#160;</div>
-<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>&#160;</div>
-<div class="line"><a name="l04943"></a><span class="lineno"> 4943</span>&#160;<span class="comment">// returns 0..31 for the highest set bit</span></div>
-<div class="line"><a name="l04944"></a><span class="lineno"> 4944</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__high_bit(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> z)</div>
-<div class="line"><a name="l04945"></a><span class="lineno"> 4945</span>&#160;{</div>
-<div class="line"><a name="l04946"></a><span class="lineno"> 4946</span>&#160; <span class="keywordtype">int</span> n=0;</div>
-<div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>&#160; <span class="keywordflow">if</span> (z == 0) <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x10000) n += 16, z &gt;&gt;= 16;</div>
-<div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00100) n += 8, z &gt;&gt;= 8;</div>
-<div class="line"><a name="l04950"></a><span class="lineno"> 4950</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00010) n += 4, z &gt;&gt;= 4;</div>
-<div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00004) n += 2, z &gt;&gt;= 2;</div>
-<div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00002) n += 1, z &gt;&gt;= 1;</div>
-<div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>&#160; <span class="keywordflow">return</span> n;</div>
-<div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>&#160;}</div>
-<div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>&#160;</div>
-<div class="line"><a name="l04956"></a><span class="lineno"> 4956</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bitcount(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> a)</div>
-<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160;{</div>
-<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160; a = (a &amp; 0x55555555) + ((a &gt;&gt; 1) &amp; 0x55555555); <span class="comment">// max 2</span></div>
-<div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>&#160; a = (a &amp; 0x33333333) + ((a &gt;&gt; 2) &amp; 0x33333333); <span class="comment">// max 4</span></div>
-<div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>&#160; a = (a + (a &gt;&gt; 4)) &amp; 0x0f0f0f0f; <span class="comment">// max 8 per 4, now 8 bits</span></div>
-<div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>&#160; a = (a + (a &gt;&gt; 8)); <span class="comment">// max 16 per 8 bits</span></div>
-<div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>&#160; a = (a + (a &gt;&gt; 16)); <span class="comment">// max 32 per 8 bits</span></div>
-<div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>&#160; <span class="keywordflow">return</span> a &amp; 0xff;</div>
-<div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>&#160;}</div>
-<div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>&#160;</div>
-<div class="line"><a name="l04966"></a><span class="lineno"> 4966</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__shiftsigned(<span class="keywordtype">int</span> v, <span class="keywordtype">int</span> shift, <span class="keywordtype">int</span> bits)</div>
-<div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>&#160;{</div>
-<div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>&#160; <span class="keywordtype">int</span> result;</div>
-<div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>&#160; <span class="keywordtype">int</span> z=0;</div>
-<div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>&#160;</div>
-<div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>&#160; <span class="keywordflow">if</span> (shift &lt; 0) v &lt;&lt;= -shift;</div>
-<div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>&#160; <span class="keywordflow">else</span> v &gt;&gt;= shift;</div>
-<div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>&#160; result = v;</div>
-<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>&#160;</div>
-<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>&#160; z = bits;</div>
-<div class="line"><a name="l04976"></a><span class="lineno"> 4976</span>&#160; <span class="keywordflow">while</span> (z &lt; 8) {</div>
-<div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>&#160; result += v &gt;&gt; z;</div>
-<div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>&#160; z += bits;</div>
-<div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>&#160; }</div>
-<div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>&#160;}</div>
-<div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>&#160;</div>
-<div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>&#160;{</div>
-<div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>&#160; <span class="keywordtype">int</span> bpp, offset, hsz;</div>
-<div class="line"><a name="l04986"></a><span class="lineno"> 4986</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mr,mg,mb,ma, all_a;</div>
-<div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>&#160;} stbi__bmp_data;</div>
-<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160;</div>
-<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)</div>
-<div class="line"><a name="l04990"></a><span class="lineno"> 4990</span>&#160;{</div>
-<div class="line"><a name="l04991"></a><span class="lineno"> 4991</span>&#160; <span class="keywordtype">int</span> hsz;</div>
-<div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;B&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;M&#39;</span>) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;not BMP&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
-<div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>&#160; stbi__get32le(s); <span class="comment">// discard filesize</span></div>
-<div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
-<div class="line"><a name="l04995"></a><span class="lineno"> 4995</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
-<div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>&#160; info-&gt;offset = stbi__get32le(s);</div>
-<div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>&#160; info-&gt;hsz = hsz = stbi__get32le(s);</div>
-<div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>&#160; info-&gt;mr = info-&gt;mg = info-&gt;mb = info-&gt;ma = 0;</div>
-<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span>&#160;</div>
-<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>&#160; <span class="keywordflow">if</span> (hsz != 12 &amp;&amp; hsz != 40 &amp;&amp; hsz != 56 &amp;&amp; hsz != 108 &amp;&amp; hsz != 124) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown BMP&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: unknown&quot;</span>);</div>
-<div class="line"><a name="l05001"></a><span class="lineno"> 5001</span>&#160; <span class="keywordflow">if</span> (hsz == 12) {</div>
-<div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>&#160; s-&gt;img_x = stbi__get16le(s);</div>
-<div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>&#160; s-&gt;img_y = stbi__get16le(s);</div>
-<div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>&#160; s-&gt;img_x = stbi__get32le(s);</div>
-<div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>&#160; s-&gt;img_y = stbi__get32le(s);</div>
-<div class="line"><a name="l05007"></a><span class="lineno"> 5007</span>&#160; }</div>
-<div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>&#160; <span class="keywordflow">if</span> (stbi__get16le(s) != 1) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
-<div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>&#160; info-&gt;bpp = stbi__get16le(s);</div>
-<div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 1) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;monochrome&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: 1-bit&quot;</span>);</div>
-<div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>&#160; <span class="keywordflow">if</span> (hsz != 12) {</div>
-<div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>&#160; <span class="keywordtype">int</span> compress = stbi__get32le(s);</div>
-<div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>&#160; <span class="keywordflow">if</span> (compress == 1 || compress == 2) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;BMP RLE&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: RLE&quot;</span>);</div>
-<div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>&#160; stbi__get32le(s); <span class="comment">// discard sizeof</span></div>
-<div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>&#160; stbi__get32le(s); <span class="comment">// discard hres</span></div>
-<div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>&#160; stbi__get32le(s); <span class="comment">// discard vres</span></div>
-<div class="line"><a name="l05017"></a><span class="lineno"> 5017</span>&#160; stbi__get32le(s); <span class="comment">// discard colorsused</span></div>
-<div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>&#160; stbi__get32le(s); <span class="comment">// discard max important</span></div>
-<div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>&#160; <span class="keywordflow">if</span> (hsz == 40 || hsz == 56) {</div>
-<div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>&#160; <span class="keywordflow">if</span> (hsz == 56) {</div>
-<div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>&#160; stbi__get32le(s);</div>
-<div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>&#160; stbi__get32le(s);</div>
-<div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>&#160; stbi__get32le(s);</div>
-<div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>&#160; stbi__get32le(s);</div>
-<div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>&#160; }</div>
-<div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 16 || info-&gt;bpp == 32) {</div>
-<div class="line"><a name="l05027"></a><span class="lineno"> 5027</span>&#160; <span class="keywordflow">if</span> (compress == 0) {</div>
-<div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 32) {</div>
-<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160; info-&gt;mr = 0xffu &lt;&lt; 16;</div>
-<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160; info-&gt;mg = 0xffu &lt;&lt; 8;</div>
-<div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>&#160; info-&gt;mb = 0xffu &lt;&lt; 0;</div>
-<div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>&#160; info-&gt;ma = 0xffu &lt;&lt; 24;</div>
-<div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>&#160; info-&gt;all_a = 0; <span class="comment">// if all_a is 0 at end, then we loaded alpha channel but it was all 0</span></div>
-<div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>&#160; info-&gt;mr = 31u &lt;&lt; 10;</div>
-<div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>&#160; info-&gt;mg = 31u &lt;&lt; 5;</div>
-<div class="line"><a name="l05037"></a><span class="lineno"> 5037</span>&#160; info-&gt;mb = 31u &lt;&lt; 0;</div>
-<div class="line"><a name="l05038"></a><span class="lineno"> 5038</span>&#160; }</div>
-<div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (compress == 3) {</div>
-<div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>&#160; info-&gt;mr = stbi__get32le(s);</div>
-<div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>&#160; info-&gt;mg = stbi__get32le(s);</div>
-<div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>&#160; info-&gt;mb = stbi__get32le(s);</div>
-<div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>&#160; <span class="comment">// not documented, but generated by photoshop and handled by mspaint</span></div>
-<div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>&#160; <span class="keywordflow">if</span> (info-&gt;mr == info-&gt;mg &amp;&amp; info-&gt;mg == info-&gt;mb) {</div>
-<div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>&#160; <span class="comment">// ?!?!?</span></div>
-<div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
-<div class="line"><a name="l05047"></a><span class="lineno"> 5047</span>&#160; }</div>
-<div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
-<div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>&#160; }</div>
-<div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>&#160; <span class="keywordflow">if</span> (hsz != 108 &amp;&amp; hsz != 124)</div>
-<div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
-<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160; info-&gt;mr = stbi__get32le(s);</div>
-<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160; info-&gt;mg = stbi__get32le(s);</div>
-<div class="line"><a name="l05057"></a><span class="lineno"> 5057</span>&#160; info-&gt;mb = stbi__get32le(s);</div>
-<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>&#160; info-&gt;ma = stbi__get32le(s);</div>
-<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>&#160; stbi__get32le(s); <span class="comment">// discard color space</span></div>
-<div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; 12; ++i)</div>
-<div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>&#160; stbi__get32le(s); <span class="comment">// discard color space parameters</span></div>
-<div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>&#160; <span class="keywordflow">if</span> (hsz == 124) {</div>
-<div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>&#160; stbi__get32le(s); <span class="comment">// discard rendering intent</span></div>
-<div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>&#160; stbi__get32le(s); <span class="comment">// discard offset of profile data</span></div>
-<div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>&#160; stbi__get32le(s); <span class="comment">// discard size of profile data</span></div>
-<div class="line"><a name="l05066"></a><span class="lineno"> 5066</span>&#160; stbi__get32le(s); <span class="comment">// discard reserved</span></div>
-<div class="line"><a name="l05067"></a><span class="lineno"> 5067</span>&#160; }</div>
-<div class="line"><a name="l05068"></a><span class="lineno"> 5068</span>&#160; }</div>
-<div class="line"><a name="l05069"></a><span class="lineno"> 5069</span>&#160; }</div>
-<div class="line"><a name="l05070"></a><span class="lineno"> 5070</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *) 1;</div>
-<div class="line"><a name="l05071"></a><span class="lineno"> 5071</span>&#160;}</div>
-<div class="line"><a name="l05072"></a><span class="lineno"> 5072</span>&#160;</div>
-<div class="line"><a name="l05073"></a><span class="lineno"> 5073</span>&#160;</div>
-<div class="line"><a name="l05074"></a><span class="lineno"> 5074</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l05075"></a><span class="lineno"> 5075</span>&#160;{</div>
-<div class="line"><a name="l05076"></a><span class="lineno"> 5076</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
-<div class="line"><a name="l05077"></a><span class="lineno"> 5077</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mr=0,mg=0,mb=0,ma=0, all_a;</div>
-<div class="line"><a name="l05078"></a><span class="lineno"> 5078</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4];</div>
-<div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>&#160; <span class="keywordtype">int</span> psize=0,i,j,width;</div>
-<div class="line"><a name="l05080"></a><span class="lineno"> 5080</span>&#160; <span class="keywordtype">int</span> flip_vertically, pad, target;</div>
-<div class="line"><a name="l05081"></a><span class="lineno"> 5081</span>&#160; stbi__bmp_data info;</div>
-<div class="line"><a name="l05082"></a><span class="lineno"> 5082</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l05083"></a><span class="lineno"> 5083</span>&#160;</div>
-<div class="line"><a name="l05084"></a><span class="lineno"> 5084</span>&#160; info.all_a = 255;</div>
-<div class="line"><a name="l05085"></a><span class="lineno"> 5085</span>&#160; <span class="keywordflow">if</span> (stbi__bmp_parse_header(s, &amp;info) == NULL)</div>
-<div class="line"><a name="l05086"></a><span class="lineno"> 5086</span>&#160; <span class="keywordflow">return</span> NULL; <span class="comment">// error code already set</span></div>
-<div class="line"><a name="l05087"></a><span class="lineno"> 5087</span>&#160;</div>
-<div class="line"><a name="l05088"></a><span class="lineno"> 5088</span>&#160; flip_vertically = ((int) s-&gt;img_y) &gt; 0;</div>
-<div class="line"><a name="l05089"></a><span class="lineno"> 5089</span>&#160; s-&gt;img_y = abs((<span class="keywordtype">int</span>) s-&gt;img_y);</div>
-<div class="line"><a name="l05090"></a><span class="lineno"> 5090</span>&#160;</div>
-<div class="line"><a name="l05091"></a><span class="lineno"> 5091</span>&#160; mr = info.mr;</div>
-<div class="line"><a name="l05092"></a><span class="lineno"> 5092</span>&#160; mg = info.mg;</div>
-<div class="line"><a name="l05093"></a><span class="lineno"> 5093</span>&#160; mb = info.mb;</div>
-<div class="line"><a name="l05094"></a><span class="lineno"> 5094</span>&#160; ma = info.ma;</div>
-<div class="line"><a name="l05095"></a><span class="lineno"> 5095</span>&#160; all_a = info.all_a;</div>
-<div class="line"><a name="l05096"></a><span class="lineno"> 5096</span>&#160;</div>
-<div class="line"><a name="l05097"></a><span class="lineno"> 5097</span>&#160; <span class="keywordflow">if</span> (info.hsz == 12) {</div>
-<div class="line"><a name="l05098"></a><span class="lineno"> 5098</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 24)</div>
-<div class="line"><a name="l05099"></a><span class="lineno"> 5099</span>&#160; psize = (info.offset - 14 - 24) / 3;</div>
-<div class="line"><a name="l05100"></a><span class="lineno"> 5100</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05101"></a><span class="lineno"> 5101</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 16)</div>
-<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span>&#160; psize = (info.offset - 14 - info.hsz) &gt;&gt; 2;</div>
-<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>&#160; }</div>
-<div class="line"><a name="l05104"></a><span class="lineno"> 5104</span>&#160;</div>
-<div class="line"><a name="l05105"></a><span class="lineno"> 5105</span>&#160; s-&gt;img_n = ma ? 4 : 3;</div>
-<div class="line"><a name="l05106"></a><span class="lineno"> 5106</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp &gt;= 3) <span class="comment">// we can directly decode 3 or 4</span></div>
-<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160; target = req_comp;</div>
-<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05109"></a><span class="lineno"> 5109</span>&#160; target = s-&gt;img_n; <span class="comment">// if they want monochrome, we&#39;ll post-convert</span></div>
-<div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>&#160;</div>
-<div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>&#160; <span class="comment">// sanity-check size</span></div>
-<div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(target, s-&gt;img_x, s-&gt;img_y, 0))</div>
-<div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
-<div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>&#160;</div>
-<div class="line"><a name="l05115"></a><span class="lineno"> 5115</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(target, s-&gt;img_x, s-&gt;img_y, 0);</div>
-<div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>&#160; <span class="keywordflow">if</span> (!out) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 16) {</div>
-<div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>&#160; <span class="keywordtype">int</span> z=0;</div>
-<div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>&#160; <span class="keywordflow">if</span> (psize == 0 || psize &gt; 256) { STBI_FREE(out); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;invalid&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>); }</div>
-<div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; psize; ++i) {</div>
-<div class="line"><a name="l05121"></a><span class="lineno"> 5121</span>&#160; pal[i][2] = stbi__get8(s);</div>
-<div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>&#160; pal[i][1] = stbi__get8(s);</div>
-<div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>&#160; pal[i][0] = stbi__get8(s);</div>
-<div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>&#160; <span class="keywordflow">if</span> (info.hsz != 12) stbi__get8(s);</div>
-<div class="line"><a name="l05125"></a><span class="lineno"> 5125</span>&#160; pal[i][3] = 255;</div>
-<div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>&#160; }</div>
-<div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>&#160; stbi__skip(s, info.offset - 14 - info.hsz - psize * (info.hsz == 12 ? 3 : 4));</div>
-<div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>&#160; <span class="keywordflow">if</span> (info.bpp == 4) width = (s-&gt;img_x + 1) &gt;&gt; 1;</div>
-<div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 8) width = s-&gt;img_x;</div>
-<div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>&#160; <span class="keywordflow">else</span> { STBI_FREE(out); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad bpp&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>); }</div>
-<div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>&#160; pad = (-width)&amp;3;</div>
-<div class="line"><a name="l05132"></a><span class="lineno"> 5132</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; (int) s-&gt;img_y; ++j) {</div>
-<div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; (int) s-&gt;img_x; i += 2) {</div>
-<div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>&#160; <span class="keywordtype">int</span> v=stbi__get8(s),v2=0;</div>
-<div class="line"><a name="l05135"></a><span class="lineno"> 5135</span>&#160; <span class="keywordflow">if</span> (info.bpp == 4) {</div>
-<div class="line"><a name="l05136"></a><span class="lineno"> 5136</span>&#160; v2 = v &amp; 15;</div>
-<div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>&#160; v &gt;&gt;= 4;</div>
-<div class="line"><a name="l05138"></a><span class="lineno"> 5138</span>&#160; }</div>
-<div class="line"><a name="l05139"></a><span class="lineno"> 5139</span>&#160; out[z++] = pal[v][0];</div>
-<div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>&#160; out[z++] = pal[v][1];</div>
-<div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>&#160; out[z++] = pal[v][2];</div>
-<div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>&#160; <span class="keywordflow">if</span> (target == 4) out[z++] = 255;</div>
-<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160; <span class="keywordflow">if</span> (i+1 == (<span class="keywordtype">int</span>) s-&gt;img_x) <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160; v = (info.bpp == 8) ? stbi__get8(s) : v2;</div>
-<div class="line"><a name="l05145"></a><span class="lineno"> 5145</span>&#160; out[z++] = pal[v][0];</div>
-<div class="line"><a name="l05146"></a><span class="lineno"> 5146</span>&#160; out[z++] = pal[v][1];</div>
-<div class="line"><a name="l05147"></a><span class="lineno"> 5147</span>&#160; out[z++] = pal[v][2];</div>
-<div class="line"><a name="l05148"></a><span class="lineno"> 5148</span>&#160; <span class="keywordflow">if</span> (target == 4) out[z++] = 255;</div>
-<div class="line"><a name="l05149"></a><span class="lineno"> 5149</span>&#160; }</div>
-<div class="line"><a name="l05150"></a><span class="lineno"> 5150</span>&#160; stbi__skip(s, pad);</div>
-<div class="line"><a name="l05151"></a><span class="lineno"> 5151</span>&#160; }</div>
-<div class="line"><a name="l05152"></a><span class="lineno"> 5152</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05153"></a><span class="lineno"> 5153</span>&#160; <span class="keywordtype">int</span> rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0;</div>
-<div class="line"><a name="l05154"></a><span class="lineno"> 5154</span>&#160; <span class="keywordtype">int</span> z = 0;</div>
-<div class="line"><a name="l05155"></a><span class="lineno"> 5155</span>&#160; <span class="keywordtype">int</span> easy=0;</div>
-<div class="line"><a name="l05156"></a><span class="lineno"> 5156</span>&#160; stbi__skip(s, info.offset - 14 - info.hsz);</div>
-<div class="line"><a name="l05157"></a><span class="lineno"> 5157</span>&#160; <span class="keywordflow">if</span> (info.bpp == 24) width = 3 * s-&gt;img_x;</div>
-<div class="line"><a name="l05158"></a><span class="lineno"> 5158</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 16) width = 2*s-&gt;img_x;</div>
-<div class="line"><a name="l05159"></a><span class="lineno"> 5159</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* bpp = 32 and pad = 0 */</span> width=0;</div>
-<div class="line"><a name="l05160"></a><span class="lineno"> 5160</span>&#160; pad = (-width) &amp; 3;</div>
-<div class="line"><a name="l05161"></a><span class="lineno"> 5161</span>&#160; <span class="keywordflow">if</span> (info.bpp == 24) {</div>
-<div class="line"><a name="l05162"></a><span class="lineno"> 5162</span>&#160; easy = 1;</div>
-<div class="line"><a name="l05163"></a><span class="lineno"> 5163</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 32) {</div>
-<div class="line"><a name="l05164"></a><span class="lineno"> 5164</span>&#160; <span class="keywordflow">if</span> (mb == 0xff &amp;&amp; mg == 0xff00 &amp;&amp; mr == 0x00ff0000 &amp;&amp; ma == 0xff000000)</div>
-<div class="line"><a name="l05165"></a><span class="lineno"> 5165</span>&#160; easy = 2;</div>
-<div class="line"><a name="l05166"></a><span class="lineno"> 5166</span>&#160; }</div>
-<div class="line"><a name="l05167"></a><span class="lineno"> 5167</span>&#160; <span class="keywordflow">if</span> (!easy) {</div>
-<div class="line"><a name="l05168"></a><span class="lineno"> 5168</span>&#160; <span class="keywordflow">if</span> (!mr || !mg || !mb) { STBI_FREE(out); <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad masks&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>); }</div>
-<div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>&#160; <span class="comment">// right shift amt to put high bit in position #7</span></div>
-<div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>&#160; rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr);</div>
-<div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>&#160; gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg);</div>
-<div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>&#160; bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb);</div>
-<div class="line"><a name="l05173"></a><span class="lineno"> 5173</span>&#160; ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma);</div>
-<div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>&#160; }</div>
-<div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; (int) s-&gt;img_y; ++j) {</div>
-<div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>&#160; <span class="keywordflow">if</span> (easy) {</div>
-<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; (int) s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> a;</div>
-<div class="line"><a name="l05179"></a><span class="lineno"> 5179</span>&#160; out[z+2] = stbi__get8(s);</div>
-<div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>&#160; out[z+1] = stbi__get8(s);</div>
-<div class="line"><a name="l05181"></a><span class="lineno"> 5181</span>&#160; out[z+0] = stbi__get8(s);</div>
-<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>&#160; z += 3;</div>
-<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>&#160; a = (easy == 2 ? stbi__get8(s) : 255);</div>
-<div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>&#160; all_a |= a;</div>
-<div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>&#160; <span class="keywordflow">if</span> (target == 4) out[z++] = a;</div>
-<div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>&#160; }</div>
-<div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>&#160; <span class="keywordtype">int</span> bpp = info.bpp;</div>
-<div class="line"><a name="l05189"></a><span class="lineno"> 5189</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; (int) s-&gt;img_x; ++i) {</div>
-<div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>&#160; stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s));</div>
-<div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>&#160; <span class="keywordtype">int</span> a;</div>
-<div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>&#160; out[z++] = STBI__BYTECAST(stbi__shiftsigned(v &amp; mr, rshift, rcount));</div>
-<div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>&#160; out[z++] = STBI__BYTECAST(stbi__shiftsigned(v &amp; mg, gshift, gcount));</div>
-<div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>&#160; out[z++] = STBI__BYTECAST(stbi__shiftsigned(v &amp; mb, bshift, bcount));</div>
-<div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>&#160; a = (ma ? stbi__shiftsigned(v &amp; ma, ashift, acount) : 255);</div>
-<div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>&#160; all_a |= a;</div>
-<div class="line"><a name="l05197"></a><span class="lineno"> 5197</span>&#160; <span class="keywordflow">if</span> (target == 4) out[z++] = STBI__BYTECAST(a);</div>
-<div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>&#160; }</div>
-<div class="line"><a name="l05199"></a><span class="lineno"> 5199</span>&#160; }</div>
-<div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>&#160; stbi__skip(s, pad);</div>
-<div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>&#160; }</div>
-<div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>&#160; }</div>
-<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>&#160;</div>
-<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>&#160; <span class="comment">// if alpha channel is all 0s, replace with all 255s</span></div>
-<div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>&#160; <span class="keywordflow">if</span> (target == 4 &amp;&amp; all_a == 0)</div>
-<div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>&#160; <span class="keywordflow">for</span> (i=4*s-&gt;img_x*s-&gt;img_y-1; i &gt;= 0; i -= 4)</div>
-<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160; out[i] = 255;</div>
-<div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>&#160;</div>
-<div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>&#160; <span class="keywordflow">if</span> (flip_vertically) {</div>
-<div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t;</div>
-<div class="line"><a name="l05211"></a><span class="lineno"> 5211</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; (int) s-&gt;img_y&gt;&gt;1; ++j) {</div>
-<div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p1 = out + j *s-&gt;img_x*target;</div>
-<div class="line"><a name="l05213"></a><span class="lineno"> 5213</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p2 = out + (s-&gt;img_y-1-j)*s-&gt;img_x*target;</div>
-<div class="line"><a name="l05214"></a><span class="lineno"> 5214</span>&#160; for (i=0; i &lt; (int) s-&gt;img_x*target; ++i) {</div>
-<div class="line"><a name="l05215"></a><span class="lineno"> 5215</span>&#160; t = p1[i], p1[i] = p2[i], p2[i] = t;</div>
-<div class="line"><a name="l05216"></a><span class="lineno"> 5216</span>&#160; }</div>
-<div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>&#160; }</div>
-<div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>&#160; }</div>
-<div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>&#160;</div>
-<div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != target) {</div>
-<div class="line"><a name="l05221"></a><span class="lineno"> 5221</span>&#160; out = stbi__convert_format(out, target, req_comp, s-&gt;img_x, s-&gt;img_y);</div>
-<div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>&#160; <span class="keywordflow">if</span> (out == NULL) <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
-<div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>&#160; }</div>
-<div class="line"><a name="l05224"></a><span class="lineno"> 5224</span>&#160;</div>
-<div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>&#160; *x = s-&gt;img_x;</div>
-<div class="line"><a name="l05226"></a><span class="lineno"> 5226</span>&#160; *y = s-&gt;img_y;</div>
-<div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>&#160; <span class="keywordflow">if</span> (comp) *comp = s-&gt;img_n;</div>
-<div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>&#160;}</div>
-<div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l05232"></a><span class="lineno"> 5232</span>&#160;<span class="comment">// Targa Truevision - TGA</span></div>
-<div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>&#160;<span class="comment">// by Jonathan Dummer</span></div>
-<div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
-<div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>&#160;<span class="preprocessor"></span><span class="comment">// returns STBI_rgb or whatever, 0 on error</span></div>
-<div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_get_comp(<span class="keywordtype">int</span> bits_per_pixel, <span class="keywordtype">int</span> is_grey, <span class="keywordtype">int</span>* is_rgb16)</div>
+<div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>&#160; stbi__context *s;</div>
+<div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *idata, *expanded, *out;</div>
+<div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>&#160; <span class="keywordtype">int</span> depth;</div>
+<div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>&#160;} stbi__png;</div>
+<div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>&#160;</div>
+<div class="line"><a name="l04836"></a><span class="lineno"> 4836</span>&#160;<span class="keyword">enum</span> {</div>
+<div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>&#160; STBI__F_none = 0,</div>
+<div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>&#160; STBI__F_sub = 1,</div>
+<div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>&#160; STBI__F_up = 2,</div>
+<div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>&#160; STBI__F_avg = 3,</div>
+<div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>&#160; STBI__F_paeth = 4,</div>
+<div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>&#160; <span class="comment">// synthetic filters used for first scanline to avoid needing a dummy row of</span></div>
+<div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>&#160; <span class="comment">// 0s</span></div>
+<div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>&#160; STBI__F_avg_first,</div>
+<div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>&#160; STBI__F_paeth_first</div>
+<div class="line"><a name="l04846"></a><span class="lineno"> 4846</span>&#160;};</div>
+<div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>&#160;</div>
+<div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> first_row_filter[5] = {STBI__F_none, STBI__F_sub, STBI__F_none,</div>
+<div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>&#160; STBI__F_avg_first, STBI__F_paeth_first};</div>
+<div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>&#160;</div>
+<div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__paeth(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> c)</div>
+<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>&#160;{</div>
+<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>&#160; <span class="keywordtype">int</span> p = a + b - c;</div>
+<div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>&#160; <span class="keywordtype">int</span> pa = abs(p - a);</div>
+<div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>&#160; <span class="keywordtype">int</span> pb = abs(p - b);</div>
+<div class="line"><a name="l04856"></a><span class="lineno"> 4856</span>&#160; <span class="keywordtype">int</span> pc = abs(p - c);</div>
+<div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>&#160; <span class="keywordflow">if</span> (pa &lt;= pb &amp;&amp; pa &lt;= pc)</div>
+<div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>&#160; <span class="keywordflow">return</span> a;</div>
+<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160; <span class="keywordflow">if</span> (pb &lt;= pc)</div>
+<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160; <span class="keywordflow">return</span> b;</div>
+<div class="line"><a name="l04861"></a><span class="lineno"> 4861</span>&#160; <span class="keywordflow">return</span> c;</div>
+<div class="line"><a name="l04862"></a><span class="lineno"> 4862</span>&#160;}</div>
+<div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>&#160;</div>
+<div class="line"><a name="l04864"></a><span class="lineno"> 4864</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> stbi__depth_scale_table[9] = {0, 0xff, 0x55, 0, 0x11,</div>
+<div class="line"><a name="l04865"></a><span class="lineno"> 4865</span>&#160; 0, 0, 0, 0x01};</div>
+<div class="line"><a name="l04866"></a><span class="lineno"> 4866</span>&#160;</div>
+<div class="line"><a name="l04867"></a><span class="lineno"> 4867</span>&#160;<span class="comment">// create the png data from post-deflated data</span></div>
+<div class="line"><a name="l04868"></a><span class="lineno"> 4868</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__create_png_image_raw(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *raw,</div>
+<div class="line"><a name="l04869"></a><span class="lineno"> 4869</span>&#160; stbi__uint32 raw_len, <span class="keywordtype">int</span> out_n,</div>
+<div class="line"><a name="l04870"></a><span class="lineno"> 4870</span>&#160; stbi__uint32 x, stbi__uint32 y, <span class="keywordtype">int</span> depth,</div>
+<div class="line"><a name="l04871"></a><span class="lineno"> 4871</span>&#160; <span class="keywordtype">int</span> color)</div>
+<div class="line"><a name="l04872"></a><span class="lineno"> 4872</span>&#160;{</div>
+<div class="line"><a name="l04873"></a><span class="lineno"> 4873</span>&#160; <span class="keywordtype">int</span> bytes = (depth == 16 ? 2 : 1);</div>
+<div class="line"><a name="l04874"></a><span class="lineno"> 4874</span>&#160; stbi__context *s = a-&gt;s;</div>
+<div class="line"><a name="l04875"></a><span class="lineno"> 4875</span>&#160; stbi__uint32 i, j, stride = x * out_n * bytes;</div>
+<div class="line"><a name="l04876"></a><span class="lineno"> 4876</span>&#160; stbi__uint32 img_len, img_width_bytes;</div>
+<div class="line"><a name="l04877"></a><span class="lineno"> 4877</span>&#160; <span class="keywordtype">int</span> k;</div>
+<div class="line"><a name="l04878"></a><span class="lineno"> 4878</span>&#160; <span class="keywordtype">int</span> img_n = s-&gt;img_n; <span class="comment">// copy it into a local for later</span></div>
+<div class="line"><a name="l04879"></a><span class="lineno"> 4879</span>&#160;</div>
+<div class="line"><a name="l04880"></a><span class="lineno"> 4880</span>&#160; <span class="keywordtype">int</span> output_bytes = out_n * bytes;</div>
+<div class="line"><a name="l04881"></a><span class="lineno"> 4881</span>&#160; <span class="keywordtype">int</span> filter_bytes = img_n * bytes;</div>
+<div class="line"><a name="l04882"></a><span class="lineno"> 4882</span>&#160; <span class="keywordtype">int</span> width = x;</div>
+<div class="line"><a name="l04883"></a><span class="lineno"> 4883</span>&#160;</div>
+<div class="line"><a name="l04884"></a><span class="lineno"> 4884</span>&#160; STBI_ASSERT(out_n == s-&gt;img_n || out_n == s-&gt;img_n + 1);</div>
+<div class="line"><a name="l04885"></a><span class="lineno"> 4885</span>&#160; a-&gt;out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(</div>
+<div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>&#160; x, y, output_bytes, 0); <span class="comment">// extra bytes to write off the end into</span></div>
+<div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>&#160; <span class="keywordflow">if</span> (!a-&gt;out)</div>
+<div class="line"><a name="l04888"></a><span class="lineno"> 4888</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l04889"></a><span class="lineno"> 4889</span>&#160;</div>
+<div class="line"><a name="l04890"></a><span class="lineno"> 4890</span>&#160; img_width_bytes = (((img_n * x * depth) + 7) &gt;&gt; 3);</div>
+<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span>&#160; img_len = (img_width_bytes + 1) * y;</div>
+<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>&#160; <span class="comment">// we used to check for exact match between raw_len and img_len on</span></div>
+<div class="line"><a name="l04893"></a><span class="lineno"> 4893</span>&#160; <span class="comment">// non-interlaced PNGs, but issue #276 reported a PNG in the wild that had</span></div>
+<div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>&#160; <span class="comment">// extra data at the end (all zeros), so just check for raw_len &lt; img_len</span></div>
+<div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>&#160; <span class="comment">// always.</span></div>
+<div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>&#160; <span class="keywordflow">if</span> (raw_len &lt; img_len)</div>
+<div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not enough pixels&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>&#160;</div>
+<div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; y; ++j) {</div>
+<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out + stride * j;</div>
+<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *prior;</div>
+<div class="line"><a name="l04902"></a><span class="lineno"> 4902</span>&#160; <span class="keywordtype">int</span> filter = *raw++;</div>
+<div class="line"><a name="l04903"></a><span class="lineno"> 4903</span>&#160;</div>
+<div class="line"><a name="l04904"></a><span class="lineno"> 4904</span>&#160; <span class="keywordflow">if</span> (filter &gt; 4)</div>
+<div class="line"><a name="l04905"></a><span class="lineno"> 4905</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid filter&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l04906"></a><span class="lineno"> 4906</span>&#160;</div>
+<div class="line"><a name="l04907"></a><span class="lineno"> 4907</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8) {</div>
+<div class="line"><a name="l04908"></a><span class="lineno"> 4908</span>&#160; STBI_ASSERT(img_width_bytes &lt;= x);</div>
+<div class="line"><a name="l04909"></a><span class="lineno"> 4909</span>&#160; cur += x * out_n - img_width_bytes; <span class="comment">// store output to the rightmost</span></div>
+<div class="line"><a name="l04910"></a><span class="lineno"> 4910</span>&#160; <span class="comment">// img_len bytes, so we can</span></div>
+<div class="line"><a name="l04911"></a><span class="lineno"> 4911</span>&#160; <span class="comment">// decode in place</span></div>
+<div class="line"><a name="l04912"></a><span class="lineno"> 4912</span>&#160; filter_bytes = 1;</div>
+<div class="line"><a name="l04913"></a><span class="lineno"> 4913</span>&#160; width = img_width_bytes;</div>
+<div class="line"><a name="l04914"></a><span class="lineno"> 4914</span>&#160; }</div>
+<div class="line"><a name="l04915"></a><span class="lineno"> 4915</span>&#160; prior = cur - stride; <span class="comment">// bugfix: need to compute this after &#39;cur +=&#39;</span></div>
+<div class="line"><a name="l04916"></a><span class="lineno"> 4916</span>&#160; <span class="comment">// computation above</span></div>
+<div class="line"><a name="l04917"></a><span class="lineno"> 4917</span>&#160;</div>
+<div class="line"><a name="l04918"></a><span class="lineno"> 4918</span>&#160; <span class="comment">// if first row, use special filter that doesn&#39;t sample previous row</span></div>
+<div class="line"><a name="l04919"></a><span class="lineno"> 4919</span>&#160; <span class="keywordflow">if</span> (j == 0)</div>
+<div class="line"><a name="l04920"></a><span class="lineno"> 4920</span>&#160; filter = first_row_filter[filter];</div>
+<div class="line"><a name="l04921"></a><span class="lineno"> 4921</span>&#160;</div>
+<div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>&#160; <span class="comment">// handle first byte explicitly</span></div>
+<div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; filter_bytes; ++k) {</div>
+<div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>&#160; <span class="keywordflow">switch</span> (filter) {</div>
+<div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>&#160; <span class="keywordflow">case</span> STBI__F_none:</div>
+<div class="line"><a name="l04926"></a><span class="lineno"> 4926</span>&#160; cur[k] = raw[k];</div>
+<div class="line"><a name="l04927"></a><span class="lineno"> 4927</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04928"></a><span class="lineno"> 4928</span>&#160; <span class="keywordflow">case</span> STBI__F_sub:</div>
+<div class="line"><a name="l04929"></a><span class="lineno"> 4929</span>&#160; cur[k] = raw[k];</div>
+<div class="line"><a name="l04930"></a><span class="lineno"> 4930</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04931"></a><span class="lineno"> 4931</span>&#160; <span class="keywordflow">case</span> STBI__F_up:</div>
+<div class="line"><a name="l04932"></a><span class="lineno"> 4932</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + prior[k]);</div>
+<div class="line"><a name="l04933"></a><span class="lineno"> 4933</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04934"></a><span class="lineno"> 4934</span>&#160; <span class="keywordflow">case</span> STBI__F_avg:</div>
+<div class="line"><a name="l04935"></a><span class="lineno"> 4935</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + (prior[k] &gt;&gt; 1));</div>
+<div class="line"><a name="l04936"></a><span class="lineno"> 4936</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04937"></a><span class="lineno"> 4937</span>&#160; <span class="keywordflow">case</span> STBI__F_paeth:</div>
+<div class="line"><a name="l04938"></a><span class="lineno"> 4938</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0));</div>
+<div class="line"><a name="l04939"></a><span class="lineno"> 4939</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04940"></a><span class="lineno"> 4940</span>&#160; <span class="keywordflow">case</span> STBI__F_avg_first:</div>
+<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span>&#160; cur[k] = raw[k];</div>
+<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04943"></a><span class="lineno"> 4943</span>&#160; <span class="keywordflow">case</span> STBI__F_paeth_first:</div>
+<div class="line"><a name="l04944"></a><span class="lineno"> 4944</span>&#160; cur[k] = raw[k];</div>
+<div class="line"><a name="l04945"></a><span class="lineno"> 4945</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04946"></a><span class="lineno"> 4946</span>&#160; }</div>
+<div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>&#160; }</div>
+<div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>&#160;</div>
+<div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>&#160; <span class="keywordflow">if</span> (depth == 8) {</div>
+<div class="line"><a name="l04950"></a><span class="lineno"> 4950</span>&#160; <span class="keywordflow">if</span> (img_n != out_n)</div>
+<div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>&#160; cur[img_n] = 255; <span class="comment">// first pixel</span></div>
+<div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>&#160; raw += img_n;</div>
+<div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>&#160; cur += out_n;</div>
+<div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>&#160; prior += out_n;</div>
+<div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 16) {</div>
+<div class="line"><a name="l04956"></a><span class="lineno"> 4956</span>&#160; <span class="keywordflow">if</span> (img_n != out_n) {</div>
+<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160; cur[filter_bytes] = 255; <span class="comment">// first pixel top byte</span></div>
+<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160; cur[filter_bytes + 1] = 255; <span class="comment">// first pixel bottom byte</span></div>
+<div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>&#160; }</div>
+<div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>&#160; raw += filter_bytes;</div>
+<div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>&#160; cur += output_bytes;</div>
+<div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>&#160; prior += output_bytes;</div>
+<div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>&#160; raw += 1;</div>
+<div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>&#160; cur += 1;</div>
+<div class="line"><a name="l04966"></a><span class="lineno"> 4966</span>&#160; prior += 1;</div>
+<div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>&#160; }</div>
+<div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>&#160;</div>
+<div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>&#160; <span class="comment">// this is a little gross, so that we don&#39;t switch per-pixel or</span></div>
+<div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>&#160; <span class="comment">// per-component</span></div>
+<div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8 || img_n == out_n) {</div>
+<div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>&#160; <span class="keywordtype">int</span> nk = (width - 1) * filter_bytes;</div>
+<div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>&#160;<span class="preprocessor">#define STBI__CASE(f) \</span></div>
+<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>&#160;<span class="preprocessor"> case f: \</span></div>
+<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>&#160;<span class="preprocessor"> for (k = 0; k &lt; nk; ++k)</span></div>
+<div class="line"><a name="l04976"></a><span class="lineno"> 4976</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">switch</span> (filter) {</div>
+<div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>&#160; <span class="comment">// &quot;none&quot; filter turns into a memcpy here; make that explicit.</span></div>
+<div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>&#160; <span class="keywordflow">case</span> STBI__F_none:</div>
+<div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>&#160; memcpy(cur, raw, nk);</div>
+<div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>&#160; STBI__CASE(STBI__F_sub)</div>
+<div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>&#160; {</div>
+<div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]);</div>
+<div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>&#160; }</div>
+<div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04986"></a><span class="lineno"> 4986</span>&#160; STBI__CASE(STBI__F_up)</div>
+<div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>&#160; {</div>
+<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + prior[k]);</div>
+<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160; }</div>
+<div class="line"><a name="l04990"></a><span class="lineno"> 4990</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04991"></a><span class="lineno"> 4991</span>&#160; STBI__CASE(STBI__F_avg)</div>
+<div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>&#160; {</div>
+<div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>&#160; raw[k] + ((prior[k] + cur[k - filter_bytes]) &gt;&gt; 1));</div>
+<div class="line"><a name="l04995"></a><span class="lineno"> 4995</span>&#160; }</div>
+<div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>&#160; STBI__CASE(STBI__F_paeth)</div>
+<div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>&#160; {</div>
+<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>&#160; raw[k] + stbi__paeth(cur[k - filter_bytes], prior[k],</div>
+<div class="line"><a name="l05001"></a><span class="lineno"> 5001</span>&#160; prior[k - filter_bytes]));</div>
+<div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>&#160; }</div>
+<div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>&#160; STBI__CASE(STBI__F_avg_first)</div>
+<div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>&#160; {</div>
+<div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>&#160; cur[k] =</div>
+<div class="line"><a name="l05007"></a><span class="lineno"> 5007</span>&#160; STBI__BYTECAST(raw[k] + (cur[k - filter_bytes] &gt;&gt; 1));</div>
+<div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>&#160; }</div>
+<div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>&#160; STBI__CASE(STBI__F_paeth_first)</div>
+<div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>&#160; {</div>
+<div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>&#160; raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0));</div>
+<div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>&#160; }</div>
+<div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>&#160; }</div>
+<div class="line"><a name="l05017"></a><span class="lineno"> 5017</span>&#160;<span class="preprocessor">#undef STBI__CASE</span></div>
+<div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>&#160;<span class="preprocessor"></span> raw += nk;</div>
+<div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>&#160; STBI_ASSERT(img_n + 1 == out_n);</div>
+<div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>&#160;<span class="preprocessor">#define STBI__CASE(f) \</span></div>
+<div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>&#160;<span class="preprocessor"> case f: \</span></div>
+<div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>&#160;<span class="preprocessor"> for (i = x - 1; i &gt;= 1; --i, cur[filter_bytes] = 255, \</span></div>
+<div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>&#160;<span class="preprocessor"> raw += filter_bytes, cur += output_bytes, prior += output_bytes) \</span></div>
+<div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>&#160;<span class="preprocessor"> for (k = 0; k &lt; filter_bytes; ++k)</span></div>
+<div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">switch</span> (filter) {</div>
+<div class="line"><a name="l05027"></a><span class="lineno"> 5027</span>&#160; STBI__CASE(STBI__F_none) { cur[k] = raw[k]; }</div>
+<div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160; STBI__CASE(STBI__F_sub)</div>
+<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160; {</div>
+<div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]);</div>
+<div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>&#160; }</div>
+<div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>&#160; STBI__CASE(STBI__F_up)</div>
+<div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>&#160; {</div>
+<div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>&#160; cur[k] = STBI__BYTECAST(raw[k] + prior[k]);</div>
+<div class="line"><a name="l05037"></a><span class="lineno"> 5037</span>&#160; }</div>
+<div class="line"><a name="l05038"></a><span class="lineno"> 5038</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>&#160; STBI__CASE(STBI__F_avg)</div>
+<div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>&#160; {</div>
+<div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>&#160; raw[k] + ((prior[k] + cur[k - output_bytes]) &gt;&gt; 1));</div>
+<div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>&#160; }</div>
+<div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>&#160; STBI__CASE(STBI__F_paeth)</div>
+<div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>&#160; {</div>
+<div class="line"><a name="l05047"></a><span class="lineno"> 5047</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>&#160; raw[k] + stbi__paeth(cur[k - output_bytes], prior[k],</div>
+<div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>&#160; prior[k - output_bytes]));</div>
+<div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>&#160; }</div>
+<div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>&#160; STBI__CASE(STBI__F_avg_first)</div>
+<div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>&#160; {</div>
+<div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>&#160; cur[k] =</div>
+<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160; STBI__BYTECAST(raw[k] + (cur[k - output_bytes] &gt;&gt; 1));</div>
+<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160; }</div>
+<div class="line"><a name="l05057"></a><span class="lineno"> 5057</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>&#160; STBI__CASE(STBI__F_paeth_first)</div>
+<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>&#160; {</div>
+<div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>&#160; cur[k] = STBI__BYTECAST(</div>
+<div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>&#160; raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0));</div>
+<div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>&#160; }</div>
+<div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>&#160; }</div>
+<div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>&#160;<span class="preprocessor">#undef STBI__CASE</span></div>
+<div class="line"><a name="l05066"></a><span class="lineno"> 5066</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l05067"></a><span class="lineno"> 5067</span>&#160; <span class="comment">// the loop above sets the high byte of the pixels&#39; alpha, but for</span></div>
+<div class="line"><a name="l05068"></a><span class="lineno"> 5068</span>&#160; <span class="comment">// 16 bit png files we also need the low byte set. we&#39;ll do that</span></div>
+<div class="line"><a name="l05069"></a><span class="lineno"> 5069</span>&#160; <span class="comment">// here.</span></div>
+<div class="line"><a name="l05070"></a><span class="lineno"> 5070</span>&#160; <span class="keywordflow">if</span> (depth == 16) {</div>
+<div class="line"><a name="l05071"></a><span class="lineno"> 5071</span>&#160; cur = a-&gt;out +</div>
+<div class="line"><a name="l05072"></a><span class="lineno"> 5072</span>&#160; stride * j; <span class="comment">// start at the beginning of the row again</span></div>
+<div class="line"><a name="l05073"></a><span class="lineno"> 5073</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; x; ++i, cur += output_bytes) {</div>
+<div class="line"><a name="l05074"></a><span class="lineno"> 5074</span>&#160; cur[filter_bytes + 1] = 255;</div>
+<div class="line"><a name="l05075"></a><span class="lineno"> 5075</span>&#160; }</div>
+<div class="line"><a name="l05076"></a><span class="lineno"> 5076</span>&#160; }</div>
+<div class="line"><a name="l05077"></a><span class="lineno"> 5077</span>&#160; }</div>
+<div class="line"><a name="l05078"></a><span class="lineno"> 5078</span>&#160; }</div>
+<div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>&#160;</div>
+<div class="line"><a name="l05080"></a><span class="lineno"> 5080</span>&#160; <span class="comment">// we make a separate pass to expand bits to pixels; for performance,</span></div>
+<div class="line"><a name="l05081"></a><span class="lineno"> 5081</span>&#160; <span class="comment">// this could run two scanlines behind the above code, so it won&#39;t</span></div>
+<div class="line"><a name="l05082"></a><span class="lineno"> 5082</span>&#160; <span class="comment">// intefere with filtering but will still be in the cache.</span></div>
+<div class="line"><a name="l05083"></a><span class="lineno"> 5083</span>&#160; <span class="keywordflow">if</span> (depth &lt; 8) {</div>
+<div class="line"><a name="l05084"></a><span class="lineno"> 5084</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; y; ++j) {</div>
+<div class="line"><a name="l05085"></a><span class="lineno"> 5085</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out + stride * j;</div>
+<div class="line"><a name="l05086"></a><span class="lineno"> 5086</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *in = a-&gt;out + stride * j + x * out_n - img_width_bytes;</div>
+<div class="line"><a name="l05087"></a><span class="lineno"> 5087</span>&#160; <span class="comment">// unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the</span></div>
+<div class="line"><a name="l05088"></a><span class="lineno"> 5088</span>&#160; <span class="comment">// common 8-bit path optimal at minimal cost for 1/2/4-bit png</span></div>
+<div class="line"><a name="l05089"></a><span class="lineno"> 5089</span>&#160; <span class="comment">// guarante byte alignment, if width is not multiple of 8/4/2 we&#39;ll</span></div>
+<div class="line"><a name="l05090"></a><span class="lineno"> 5090</span>&#160; <span class="comment">// decode dummy trailing data that will be skipped in the later loop</span></div>
+<div class="line"><a name="l05091"></a><span class="lineno"> 5091</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> scale = (color == 0)</div>
+<div class="line"><a name="l05092"></a><span class="lineno"> 5092</span>&#160; ? stbi__depth_scale_table[depth]</div>
+<div class="line"><a name="l05093"></a><span class="lineno"> 5093</span>&#160; : 1; <span class="comment">// scale grayscale values to 0..255 range</span></div>
+<div class="line"><a name="l05094"></a><span class="lineno"> 5094</span>&#160;</div>
+<div class="line"><a name="l05095"></a><span class="lineno"> 5095</span>&#160; <span class="comment">// note that the final byte might overshoot and write more data than</span></div>
+<div class="line"><a name="l05096"></a><span class="lineno"> 5096</span>&#160; <span class="comment">// desired. we can allocate enough data that this never writes out</span></div>
+<div class="line"><a name="l05097"></a><span class="lineno"> 5097</span>&#160; <span class="comment">// of memory, but it could also overwrite the next scanline. can it</span></div>
+<div class="line"><a name="l05098"></a><span class="lineno"> 5098</span>&#160; <span class="comment">// overwrite non-empty data on the next scanline? yes, consider</span></div>
+<div class="line"><a name="l05099"></a><span class="lineno"> 5099</span>&#160; <span class="comment">// 1-pixel-wide scanlines with 1-bit-per-pixel. so we need to</span></div>
+<div class="line"><a name="l05100"></a><span class="lineno"> 5100</span>&#160; <span class="comment">// explicitly clamp the final ones</span></div>
+<div class="line"><a name="l05101"></a><span class="lineno"> 5101</span>&#160;</div>
+<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span>&#160; <span class="keywordflow">if</span> (depth == 4) {</div>
+<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>&#160; <span class="keywordflow">for</span> (k = x * img_n; k &gt;= 2; k -= 2, ++in) {</div>
+<div class="line"><a name="l05104"></a><span class="lineno"> 5104</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4));</div>
+<div class="line"><a name="l05105"></a><span class="lineno"> 5105</span>&#160; *cur++ = scale * ((*in) &amp; 0x0f);</div>
+<div class="line"><a name="l05106"></a><span class="lineno"> 5106</span>&#160; }</div>
+<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160; <span class="keywordflow">if</span> (k &gt; 0)</div>
+<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4));</div>
+<div class="line"><a name="l05109"></a><span class="lineno"> 5109</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 2) {</div>
+<div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>&#160; <span class="keywordflow">for</span> (k = x * img_n; k &gt;= 4; k -= 4, ++in) {</div>
+<div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6));</div>
+<div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x03);</div>
+<div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x03);</div>
+<div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>&#160; *cur++ = scale * ((*in) &amp; 0x03);</div>
+<div class="line"><a name="l05115"></a><span class="lineno"> 5115</span>&#160; }</div>
+<div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>&#160; <span class="keywordflow">if</span> (k &gt; 0)</div>
+<div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6));</div>
+<div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>&#160; <span class="keywordflow">if</span> (k &gt; 1)</div>
+<div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x03);</div>
+<div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>&#160; <span class="keywordflow">if</span> (k &gt; 2)</div>
+<div class="line"><a name="l05121"></a><span class="lineno"> 5121</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x03);</div>
+<div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 1) {</div>
+<div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>&#160; <span class="keywordflow">for</span> (k = x * img_n; k &gt;= 8; k -= 8, ++in) {</div>
+<div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>&#160; *cur++ = scale * ((*in &gt;&gt; 7));</div>
+<div class="line"><a name="l05125"></a><span class="lineno"> 5125</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6) &amp; 0x01);</div>
+<div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>&#160; *cur++ = scale * ((*in &gt;&gt; 5) &amp; 0x01);</div>
+<div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x01);</div>
+<div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>&#160; *cur++ = scale * ((*in &gt;&gt; 3) &amp; 0x01);</div>
+<div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x01);</div>
+<div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>&#160; *cur++ = scale * ((*in &gt;&gt; 1) &amp; 0x01);</div>
+<div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>&#160; *cur++ = scale * ((*in) &amp; 0x01);</div>
+<div class="line"><a name="l05132"></a><span class="lineno"> 5132</span>&#160; }</div>
+<div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>&#160; <span class="keywordflow">if</span> (k &gt; 0)</div>
+<div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>&#160; *cur++ = scale * ((*in &gt;&gt; 7));</div>
+<div class="line"><a name="l05135"></a><span class="lineno"> 5135</span>&#160; <span class="keywordflow">if</span> (k &gt; 1)</div>
+<div class="line"><a name="l05136"></a><span class="lineno"> 5136</span>&#160; *cur++ = scale * ((*in &gt;&gt; 6) &amp; 0x01);</div>
+<div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>&#160; <span class="keywordflow">if</span> (k &gt; 2)</div>
+<div class="line"><a name="l05138"></a><span class="lineno"> 5138</span>&#160; *cur++ = scale * ((*in &gt;&gt; 5) &amp; 0x01);</div>
+<div class="line"><a name="l05139"></a><span class="lineno"> 5139</span>&#160; <span class="keywordflow">if</span> (k &gt; 3)</div>
+<div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>&#160; *cur++ = scale * ((*in &gt;&gt; 4) &amp; 0x01);</div>
+<div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>&#160; <span class="keywordflow">if</span> (k &gt; 4)</div>
+<div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>&#160; *cur++ = scale * ((*in &gt;&gt; 3) &amp; 0x01);</div>
+<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160; <span class="keywordflow">if</span> (k &gt; 5)</div>
+<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160; *cur++ = scale * ((*in &gt;&gt; 2) &amp; 0x01);</div>
+<div class="line"><a name="l05145"></a><span class="lineno"> 5145</span>&#160; <span class="keywordflow">if</span> (k &gt; 6)</div>
+<div class="line"><a name="l05146"></a><span class="lineno"> 5146</span>&#160; *cur++ = scale * ((*in &gt;&gt; 1) &amp; 0x01);</div>
+<div class="line"><a name="l05147"></a><span class="lineno"> 5147</span>&#160; }</div>
+<div class="line"><a name="l05148"></a><span class="lineno"> 5148</span>&#160; <span class="keywordflow">if</span> (img_n != out_n) {</div>
+<div class="line"><a name="l05149"></a><span class="lineno"> 5149</span>&#160; <span class="keywordtype">int</span> q;</div>
+<div class="line"><a name="l05150"></a><span class="lineno"> 5150</span>&#160; <span class="comment">// insert alpha = 255</span></div>
+<div class="line"><a name="l05151"></a><span class="lineno"> 5151</span>&#160; cur = a-&gt;out + stride * j;</div>
+<div class="line"><a name="l05152"></a><span class="lineno"> 5152</span>&#160; <span class="keywordflow">if</span> (img_n == 1) {</div>
+<div class="line"><a name="l05153"></a><span class="lineno"> 5153</span>&#160; <span class="keywordflow">for</span> (q = x - 1; q &gt;= 0; --q) {</div>
+<div class="line"><a name="l05154"></a><span class="lineno"> 5154</span>&#160; cur[q * 2 + 1] = 255;</div>
+<div class="line"><a name="l05155"></a><span class="lineno"> 5155</span>&#160; cur[q * 2 + 0] = cur[q];</div>
+<div class="line"><a name="l05156"></a><span class="lineno"> 5156</span>&#160; }</div>
+<div class="line"><a name="l05157"></a><span class="lineno"> 5157</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05158"></a><span class="lineno"> 5158</span>&#160; STBI_ASSERT(img_n == 3);</div>
+<div class="line"><a name="l05159"></a><span class="lineno"> 5159</span>&#160; <span class="keywordflow">for</span> (q = x - 1; q &gt;= 0; --q) {</div>
+<div class="line"><a name="l05160"></a><span class="lineno"> 5160</span>&#160; cur[q * 4 + 3] = 255;</div>
+<div class="line"><a name="l05161"></a><span class="lineno"> 5161</span>&#160; cur[q * 4 + 2] = cur[q * 3 + 2];</div>
+<div class="line"><a name="l05162"></a><span class="lineno"> 5162</span>&#160; cur[q * 4 + 1] = cur[q * 3 + 1];</div>
+<div class="line"><a name="l05163"></a><span class="lineno"> 5163</span>&#160; cur[q * 4 + 0] = cur[q * 3 + 0];</div>
+<div class="line"><a name="l05164"></a><span class="lineno"> 5164</span>&#160; }</div>
+<div class="line"><a name="l05165"></a><span class="lineno"> 5165</span>&#160; }</div>
+<div class="line"><a name="l05166"></a><span class="lineno"> 5166</span>&#160; }</div>
+<div class="line"><a name="l05167"></a><span class="lineno"> 5167</span>&#160; }</div>
+<div class="line"><a name="l05168"></a><span class="lineno"> 5168</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (depth == 16) {</div>
+<div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>&#160; <span class="comment">// force the image data from big-endian to platform-native.</span></div>
+<div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>&#160; <span class="comment">// this is done in a separate pass due to the decoding relying</span></div>
+<div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>&#160; <span class="comment">// on the data being untouched, but could probably be done</span></div>
+<div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>&#160; <span class="comment">// per-line during decode if care is taken.</span></div>
+<div class="line"><a name="l05173"></a><span class="lineno"> 5173</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *cur = a-&gt;out;</div>
+<div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>&#160; stbi__uint16 *cur16 = (stbi__uint16 *)cur;</div>
+<div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>&#160;</div>
+<div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; x * y * out_n; ++i, cur16++, cur += 2) {</div>
+<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160; *cur16 = (cur[0] &lt;&lt; 8) | cur[1];</div>
+<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160; }</div>
+<div class="line"><a name="l05179"></a><span class="lineno"> 5179</span>&#160; }</div>
+<div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>&#160;</div>
+<div class="line"><a name="l05181"></a><span class="lineno"> 5181</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>&#160;}</div>
+<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>&#160;</div>
+<div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__create_png_image(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *image_data,</div>
+<div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>&#160; stbi__uint32 image_data_len, <span class="keywordtype">int</span> out_n,</div>
+<div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>&#160; <span class="keywordtype">int</span> depth, <span class="keywordtype">int</span> color, <span class="keywordtype">int</span> interlaced)</div>
+<div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>&#160;{</div>
+<div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>&#160; <span class="keywordtype">int</span> bytes = (depth == 16 ? 2 : 1);</div>
+<div class="line"><a name="l05189"></a><span class="lineno"> 5189</span>&#160; <span class="keywordtype">int</span> out_bytes = out_n * bytes;</div>
+<div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *<span class="keyword">final</span>;</div>
+<div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>&#160; <span class="keywordtype">int</span> p;</div>
+<div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>&#160; <span class="keywordflow">if</span> (!interlaced)</div>
+<div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>&#160; <span class="keywordflow">return</span> stbi__create_png_image_raw(a, image_data, image_data_len, out_n,</div>
+<div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>&#160; a-&gt;s-&gt;img_x, a-&gt;s-&gt;img_y, depth,</div>
+<div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>&#160; color);</div>
+<div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>&#160;</div>
+<div class="line"><a name="l05197"></a><span class="lineno"> 5197</span>&#160; <span class="comment">// de-interlacing</span></div>
+<div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>&#160; <span class="keyword">final</span> =</div>
+<div class="line"><a name="l05199"></a><span class="lineno"> 5199</span>&#160; (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(a-&gt;s-&gt;img_x, a-&gt;s-&gt;img_y, out_bytes, 0);</div>
+<div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>&#160; <span class="keywordflow">for</span> (p = 0; p &lt; 7; ++p) {</div>
+<div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>&#160; <span class="keywordtype">int</span> xorig[] = {0, 4, 0, 2, 0, 1, 0};</div>
+<div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>&#160; <span class="keywordtype">int</span> yorig[] = {0, 0, 4, 0, 2, 0, 1};</div>
+<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>&#160; <span class="keywordtype">int</span> xspc[] = {8, 8, 4, 4, 2, 2, 1};</div>
+<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>&#160; <span class="keywordtype">int</span> yspc[] = {8, 8, 8, 4, 4, 2, 2};</div>
+<div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>&#160; <span class="keywordtype">int</span> i, j, x, y;</div>
+<div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>&#160; <span class="comment">// pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1</span></div>
+<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160; x = (a-&gt;s-&gt;img_x - xorig[p] + xspc[p] - 1) / xspc[p];</div>
+<div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>&#160; y = (a-&gt;s-&gt;img_y - yorig[p] + yspc[p] - 1) / yspc[p];</div>
+<div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>&#160; <span class="keywordflow">if</span> (x &amp;&amp; y) {</div>
+<div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>&#160; stbi__uint32 img_len =</div>
+<div class="line"><a name="l05211"></a><span class="lineno"> 5211</span>&#160; ((((a-&gt;s-&gt;img_n * x * depth) + 7) &gt;&gt; 3) + 1) * y;</div>
+<div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>&#160; <span class="keywordflow">if</span> (!stbi__create_png_image_raw(a, image_data, image_data_len,</div>
+<div class="line"><a name="l05213"></a><span class="lineno"> 5213</span>&#160; out_n, x, y, depth, color)) {</div>
+<div class="line"><a name="l05214"></a><span class="lineno"> 5214</span>&#160; STBI_FREE(<span class="keyword">final</span>);</div>
+<div class="line"><a name="l05215"></a><span class="lineno"> 5215</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05216"></a><span class="lineno"> 5216</span>&#160; }</div>
+<div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; y; ++j) {</div>
+<div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; x; ++i) {</div>
+<div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>&#160; <span class="keywordtype">int</span> out_y = j * yspc[p] + yorig[p];</div>
+<div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>&#160; <span class="keywordtype">int</span> out_x = i * xspc[p] + xorig[p];</div>
+<div class="line"><a name="l05221"></a><span class="lineno"> 5221</span>&#160; memcpy(<span class="keyword">final</span> + out_y * a-&gt;s-&gt;img_x * out_bytes +</div>
+<div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>&#160; out_x * out_bytes,</div>
+<div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>&#160; a-&gt;out + (j * x + i) * out_bytes, out_bytes);</div>
+<div class="line"><a name="l05224"></a><span class="lineno"> 5224</span>&#160; }</div>
+<div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>&#160; }</div>
+<div class="line"><a name="l05226"></a><span class="lineno"> 5226</span>&#160; STBI_FREE(a-&gt;out);</div>
+<div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>&#160; image_data += img_len;</div>
+<div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>&#160; image_data_len -= img_len;</div>
+<div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>&#160; }</div>
+<div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>&#160; }</div>
+<div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>&#160; a-&gt;out = <span class="keyword">final</span>;</div>
+<div class="line"><a name="l05232"></a><span class="lineno"> 5232</span>&#160;</div>
+<div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>&#160;}</div>
+<div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>&#160;</div>
+<div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_transparency(stbi__png *z, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> tc[3], <span class="keywordtype">int</span> out_n)</div>
<div class="line"><a name="l05237"></a><span class="lineno"> 5237</span>&#160;{</div>
-<div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>&#160; <span class="comment">// only RGB or RGBA (incl. 16bit) or grey allowed</span></div>
-<div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>&#160; <span class="keywordflow">if</span>(is_rgb16) *is_rgb16 = 0;</div>
-<div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>&#160; <span class="keywordflow">switch</span>(bits_per_pixel) {</div>
-<div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>&#160; <span class="keywordflow">case</span> 8: <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa">STBI_grey</a>;</div>
-<div class="line"><a name="l05242"></a><span class="lineno"> 5242</span>&#160; <span class="keywordflow">case</span> 16: <span class="keywordflow">if</span>(is_grey) <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8">STBI_grey_alpha</a>;</div>
-<div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>&#160; <span class="comment">// else: fall-through</span></div>
-<div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>&#160; <span class="keywordflow">case</span> 15: <span class="keywordflow">if</span>(is_rgb16) *is_rgb16 = 1;</div>
-<div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>;</div>
-<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160; <span class="keywordflow">case</span> 24: <span class="comment">// fall-through</span></div>
-<div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>&#160; <span class="keywordflow">case</span> 32: <span class="keywordflow">return</span> bits_per_pixel/8;</div>
-<div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>&#160; <span class="keywordflow">default</span>: <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>&#160; }</div>
-<div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>&#160;}</div>
-<div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>&#160;</div>
-<div class="line"><a name="l05252"></a><span class="lineno"> 5252</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>&#160;{</div>
-<div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>&#160; <span class="keywordtype">int</span> tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;</div>
-<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>&#160; <span class="keywordtype">int</span> sz, tga_colormap_type;</div>
-<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>&#160; stbi__get8(s); <span class="comment">// discard Offset</span></div>
-<div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>&#160; tga_colormap_type = stbi__get8(s); <span class="comment">// colormap type</span></div>
-<div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>&#160; <span class="keywordflow">if</span>( tga_colormap_type &gt; 1 ) {</div>
-<div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// only RGB or indexed allowed</span></div>
-<div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>&#160; }</div>
-<div class="line"><a name="l05262"></a><span class="lineno"> 5262</span>&#160; tga_image_type = stbi__get8(s); <span class="comment">// image type</span></div>
-<div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>&#160; <span class="keywordflow">if</span> ( tga_colormap_type == 1 ) { <span class="comment">// colormapped (paletted) image</span></div>
-<div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>&#160; <span class="keywordflow">if</span> (tga_image_type != 1 &amp;&amp; tga_image_type != 9) {</div>
-<div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>&#160; }</div>
-<div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>&#160; stbi__skip(s,4); <span class="comment">// skip index of first colormap entry and number of entries</span></div>
-<div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>&#160; sz = stbi__get8(s); <span class="comment">// check bits per palette color entry</span></div>
-<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160; <span class="keywordflow">if</span> ( (sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32) ) {</div>
-<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05272"></a><span class="lineno"> 5272</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>&#160; }</div>
-<div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>&#160; stbi__skip(s,4); <span class="comment">// skip image x and y origin</span></div>
-<div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>&#160; tga_colormap_bpp = sz;</div>
-<div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// &quot;normal&quot; image w/o colormap - only RGB or grey allowed, +/- RLE</span></div>
-<div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>&#160; <span class="keywordflow">if</span> ( (tga_image_type != 2) &amp;&amp; (tga_image_type != 3) &amp;&amp; (tga_image_type != 10) &amp;&amp; (tga_image_type != 11) ) {</div>
-<div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// only RGB or grey allowed, +/- RLE</span></div>
-<div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>&#160; }</div>
-<div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>&#160; stbi__skip(s,9); <span class="comment">// skip colormap specification and image x/y origin</span></div>
-<div class="line"><a name="l05282"></a><span class="lineno"> 5282</span>&#160; tga_colormap_bpp = 0;</div>
+<div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>&#160; stbi__context *s = z-&gt;s;</div>
+<div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
+<div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = z-&gt;out;</div>
+<div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>&#160;</div>
+<div class="line"><a name="l05242"></a><span class="lineno"> 5242</span>&#160; <span class="comment">// compute color-based transparency, assuming we&#39;ve</span></div>
+<div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>&#160; <span class="comment">// already got 255 as the alpha value in the output</span></div>
+<div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>&#160; STBI_ASSERT(out_n == 2 || out_n == 4);</div>
+<div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>&#160;</div>
+<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160; <span class="keywordflow">if</span> (out_n == 2) {</div>
+<div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>&#160; p[1] = (p[0] == tc[0] ? 0 : 255);</div>
+<div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>&#160; p += 2;</div>
+<div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>&#160; }</div>
+<div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05252"></a><span class="lineno"> 5252</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>&#160; <span class="keywordflow">if</span> (p[0] == tc[0] &amp;&amp; p[1] == tc[1] &amp;&amp; p[2] == tc[2])</div>
+<div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>&#160; p[3] = 0;</div>
+<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>&#160; p += 4;</div>
+<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>&#160; }</div>
+<div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>&#160; }</div>
+<div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>&#160;}</div>
+<div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>&#160;</div>
+<div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3],</div>
+<div class="line"><a name="l05262"></a><span class="lineno"> 5262</span>&#160; <span class="keywordtype">int</span> out_n)</div>
+<div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>&#160;{</div>
+<div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>&#160; stbi__context *s = z-&gt;s;</div>
+<div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
+<div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>&#160; stbi__uint16 *p = (stbi__uint16 *)z-&gt;out;</div>
+<div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>&#160;</div>
+<div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>&#160; <span class="comment">// compute color-based transparency, assuming we&#39;ve</span></div>
+<div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>&#160; <span class="comment">// already got 65535 as the alpha value in the output</span></div>
+<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160; STBI_ASSERT(out_n == 2 || out_n == 4);</div>
+<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160;</div>
+<div class="line"><a name="l05272"></a><span class="lineno"> 5272</span>&#160; <span class="keywordflow">if</span> (out_n == 2) {</div>
+<div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>&#160; p[1] = (p[0] == tc[0] ? 0 : 65535);</div>
+<div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>&#160; p += 2;</div>
+<div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>&#160; }</div>
+<div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>&#160; <span class="keywordflow">if</span> (p[0] == tc[0] &amp;&amp; p[1] == tc[1] &amp;&amp; p[2] == tc[2])</div>
+<div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>&#160; p[3] = 0;</div>
+<div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>&#160; p += 4;</div>
+<div class="line"><a name="l05282"></a><span class="lineno"> 5282</span>&#160; }</div>
<div class="line"><a name="l05283"></a><span class="lineno"> 5283</span>&#160; }</div>
-<div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>&#160; tga_w = stbi__get16le(s);</div>
-<div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>&#160; <span class="keywordflow">if</span>( tga_w &lt; 1 ) {</div>
-<div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// test width</span></div>
-<div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>&#160; }</div>
-<div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>&#160; tga_h = stbi__get16le(s);</div>
-<div class="line"><a name="l05290"></a><span class="lineno"> 5290</span>&#160; <span class="keywordflow">if</span>( tga_h &lt; 1 ) {</div>
-<div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05292"></a><span class="lineno"> 5292</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// test height</span></div>
-<div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>&#160; }</div>
-<div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>&#160; tga_bits_per_pixel = stbi__get8(s); <span class="comment">// bits per pixel</span></div>
-<div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>&#160; stbi__get8(s); <span class="comment">// ignore alpha bits</span></div>
-<div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>&#160; <span class="keywordflow">if</span> (tga_colormap_bpp != 0) {</div>
-<div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>&#160; <span class="keywordflow">if</span>((tga_bits_per_pixel != 8) &amp;&amp; (tga_bits_per_pixel != 16)) {</div>
-<div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>&#160; <span class="comment">// when using a colormap, tga_bits_per_pixel is the size of the indexes</span></div>
-<div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>&#160; <span class="comment">// I don&#39;t think anything but 8 or 16bit indexes makes sense</span></div>
-<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>&#160; }</div>
-<div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>&#160; tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);</div>
-<div class="line"><a name="l05304"></a><span class="lineno"> 5304</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05305"></a><span class="lineno"> 5305</span>&#160; tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);</div>
-<div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>&#160; }</div>
-<div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>&#160; <span class="keywordflow">if</span>(!tga_comp) {</div>
-<div class="line"><a name="l05308"></a><span class="lineno"> 5308</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05309"></a><span class="lineno"> 5309</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05310"></a><span class="lineno"> 5310</span>&#160; }</div>
-<div class="line"><a name="l05311"></a><span class="lineno"> 5311</span>&#160; <span class="keywordflow">if</span> (x) *x = tga_w;</div>
-<div class="line"><a name="l05312"></a><span class="lineno"> 5312</span>&#160; <span class="keywordflow">if</span> (y) *y = tga_h;</div>
-<div class="line"><a name="l05313"></a><span class="lineno"> 5313</span>&#160; <span class="keywordflow">if</span> (comp) *comp = tga_comp;</div>
-<div class="line"><a name="l05314"></a><span class="lineno"> 5314</span>&#160; <span class="keywordflow">return</span> 1; <span class="comment">// seems to have passed everything</span></div>
-<div class="line"><a name="l05315"></a><span class="lineno"> 5315</span>&#160;}</div>
-<div class="line"><a name="l05316"></a><span class="lineno"> 5316</span>&#160;</div>
-<div class="line"><a name="l05317"></a><span class="lineno"> 5317</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_test(stbi__context *s)</div>
-<div class="line"><a name="l05318"></a><span class="lineno"> 5318</span>&#160;{</div>
-<div class="line"><a name="l05319"></a><span class="lineno"> 5319</span>&#160; <span class="keywordtype">int</span> res = 0;</div>
-<div class="line"><a name="l05320"></a><span class="lineno"> 5320</span>&#160; <span class="keywordtype">int</span> sz, tga_color_type;</div>
-<div class="line"><a name="l05321"></a><span class="lineno"> 5321</span>&#160; stbi__get8(s); <span class="comment">// discard Offset</span></div>
-<div class="line"><a name="l05322"></a><span class="lineno"> 5322</span>&#160; tga_color_type = stbi__get8(s); <span class="comment">// color type</span></div>
-<div class="line"><a name="l05323"></a><span class="lineno"> 5323</span>&#160; <span class="keywordflow">if</span> ( tga_color_type &gt; 1 ) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// only RGB or indexed allowed</span></div>
-<div class="line"><a name="l05324"></a><span class="lineno"> 5324</span>&#160; sz = stbi__get8(s); <span class="comment">// image type</span></div>
-<div class="line"><a name="l05325"></a><span class="lineno"> 5325</span>&#160; <span class="keywordflow">if</span> ( tga_color_type == 1 ) { <span class="comment">// colormapped (paletted) image</span></div>
-<div class="line"><a name="l05326"></a><span class="lineno"> 5326</span>&#160; <span class="keywordflow">if</span> (sz != 1 &amp;&amp; sz != 9) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// colortype 1 demands image type 1 or 9</span></div>
-<div class="line"><a name="l05327"></a><span class="lineno"> 5327</span>&#160; stbi__skip(s,4); <span class="comment">// skip index of first colormap entry and number of entries</span></div>
-<div class="line"><a name="l05328"></a><span class="lineno"> 5328</span>&#160; sz = stbi__get8(s); <span class="comment">// check bits per palette color entry</span></div>
-<div class="line"><a name="l05329"></a><span class="lineno"> 5329</span>&#160; <span class="keywordflow">if</span> ( (sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32) ) <span class="keywordflow">goto</span> errorEnd;</div>
-<div class="line"><a name="l05330"></a><span class="lineno"> 5330</span>&#160; stbi__skip(s,4); <span class="comment">// skip image x and y origin</span></div>
-<div class="line"><a name="l05331"></a><span class="lineno"> 5331</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// &quot;normal&quot; image w/o colormap</span></div>
-<div class="line"><a name="l05332"></a><span class="lineno"> 5332</span>&#160; <span class="keywordflow">if</span> ( (sz != 2) &amp;&amp; (sz != 3) &amp;&amp; (sz != 10) &amp;&amp; (sz != 11) ) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// only RGB or grey allowed, +/- RLE</span></div>
-<div class="line"><a name="l05333"></a><span class="lineno"> 5333</span>&#160; stbi__skip(s,9); <span class="comment">// skip colormap specification and image x/y origin</span></div>
-<div class="line"><a name="l05334"></a><span class="lineno"> 5334</span>&#160; }</div>
-<div class="line"><a name="l05335"></a><span class="lineno"> 5335</span>&#160; <span class="keywordflow">if</span> ( stbi__get16le(s) &lt; 1 ) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// test width</span></div>
-<div class="line"><a name="l05336"></a><span class="lineno"> 5336</span>&#160; <span class="keywordflow">if</span> ( stbi__get16le(s) &lt; 1 ) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// test height</span></div>
-<div class="line"><a name="l05337"></a><span class="lineno"> 5337</span>&#160; sz = stbi__get8(s); <span class="comment">// bits per pixel</span></div>
-<div class="line"><a name="l05338"></a><span class="lineno"> 5338</span>&#160; <span class="keywordflow">if</span> ( (tga_color_type == 1) &amp;&amp; (sz != 8) &amp;&amp; (sz != 16) ) <span class="keywordflow">goto</span> errorEnd; <span class="comment">// for colormapped images, bpp is size of an index</span></div>
-<div class="line"><a name="l05339"></a><span class="lineno"> 5339</span>&#160; <span class="keywordflow">if</span> ( (sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32) ) <span class="keywordflow">goto</span> errorEnd;</div>
-<div class="line"><a name="l05340"></a><span class="lineno"> 5340</span>&#160;</div>
-<div class="line"><a name="l05341"></a><span class="lineno"> 5341</span>&#160; res = 1; <span class="comment">// if we got this far, everything&#39;s good and we can return 1 instead of 0</span></div>
-<div class="line"><a name="l05342"></a><span class="lineno"> 5342</span>&#160;</div>
-<div class="line"><a name="l05343"></a><span class="lineno"> 5343</span>&#160;errorEnd:</div>
-<div class="line"><a name="l05344"></a><span class="lineno"> 5344</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05345"></a><span class="lineno"> 5345</span>&#160; <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l05346"></a><span class="lineno"> 5346</span>&#160;}</div>
-<div class="line"><a name="l05347"></a><span class="lineno"> 5347</span>&#160;</div>
-<div class="line"><a name="l05348"></a><span class="lineno"> 5348</span>&#160;<span class="comment">// read 16bit value and convert to 24bit RGB</span></div>
-<div class="line"><a name="l05349"></a><span class="lineno"> 5349</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__tga_read_rgb16(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>* out)</div>
-<div class="line"><a name="l05350"></a><span class="lineno"> 5350</span>&#160;{</div>
-<div class="line"><a name="l05351"></a><span class="lineno"> 5351</span>&#160; stbi__uint16 px = (stbi__uint16)stbi__get16le(s);</div>
-<div class="line"><a name="l05352"></a><span class="lineno"> 5352</span>&#160; stbi__uint16 fiveBitMask = 31;</div>
-<div class="line"><a name="l05353"></a><span class="lineno"> 5353</span>&#160; <span class="comment">// we have 3 channels with 5bits each</span></div>
-<div class="line"><a name="l05354"></a><span class="lineno"> 5354</span>&#160; <span class="keywordtype">int</span> r = (px &gt;&gt; 10) &amp; fiveBitMask;</div>
-<div class="line"><a name="l05355"></a><span class="lineno"> 5355</span>&#160; <span class="keywordtype">int</span> g = (px &gt;&gt; 5) &amp; fiveBitMask;</div>
-<div class="line"><a name="l05356"></a><span class="lineno"> 5356</span>&#160; <span class="keywordtype">int</span> b = px &amp; fiveBitMask;</div>
-<div class="line"><a name="l05357"></a><span class="lineno"> 5357</span>&#160; <span class="comment">// Note that this saves the data in RGB(A) order, so it doesn&#39;t need to be swapped later</span></div>
-<div class="line"><a name="l05358"></a><span class="lineno"> 5358</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((r * 255)/31);</div>
-<div class="line"><a name="l05359"></a><span class="lineno"> 5359</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((g * 255)/31);</div>
-<div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((b * 255)/31);</div>
-<div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>&#160;</div>
-<div class="line"><a name="l05362"></a><span class="lineno"> 5362</span>&#160; <span class="comment">// some people claim that the most significant bit might be used for alpha</span></div>
-<div class="line"><a name="l05363"></a><span class="lineno"> 5363</span>&#160; <span class="comment">// (possibly if an alpha-bit is set in the &quot;image descriptor byte&quot;)</span></div>
-<div class="line"><a name="l05364"></a><span class="lineno"> 5364</span>&#160; <span class="comment">// but that only made 16bit test images completely translucent..</span></div>
-<div class="line"><a name="l05365"></a><span class="lineno"> 5365</span>&#160; <span class="comment">// so let&#39;s treat all 15 and 16bit TGAs as RGB with no alpha.</span></div>
-<div class="line"><a name="l05366"></a><span class="lineno"> 5366</span>&#160;}</div>
-<div class="line"><a name="l05367"></a><span class="lineno"> 5367</span>&#160;</div>
-<div class="line"><a name="l05368"></a><span class="lineno"> 5368</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__tga_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l05369"></a><span class="lineno"> 5369</span>&#160;{</div>
-<div class="line"><a name="l05370"></a><span class="lineno"> 5370</span>&#160; <span class="comment">// read in the TGA header stuff</span></div>
-<div class="line"><a name="l05371"></a><span class="lineno"> 5371</span>&#160; <span class="keywordtype">int</span> tga_offset = stbi__get8(s);</div>
-<div class="line"><a name="l05372"></a><span class="lineno"> 5372</span>&#160; <span class="keywordtype">int</span> tga_indexed = stbi__get8(s);</div>
-<div class="line"><a name="l05373"></a><span class="lineno"> 5373</span>&#160; <span class="keywordtype">int</span> tga_image_type = stbi__get8(s);</div>
-<div class="line"><a name="l05374"></a><span class="lineno"> 5374</span>&#160; <span class="keywordtype">int</span> tga_is_RLE = 0;</div>
-<div class="line"><a name="l05375"></a><span class="lineno"> 5375</span>&#160; <span class="keywordtype">int</span> tga_palette_start = stbi__get16le(s);</div>
-<div class="line"><a name="l05376"></a><span class="lineno"> 5376</span>&#160; <span class="keywordtype">int</span> tga_palette_len = stbi__get16le(s);</div>
-<div class="line"><a name="l05377"></a><span class="lineno"> 5377</span>&#160; <span class="keywordtype">int</span> tga_palette_bits = stbi__get8(s);</div>
-<div class="line"><a name="l05378"></a><span class="lineno"> 5378</span>&#160; <span class="keywordtype">int</span> tga_x_origin = stbi__get16le(s);</div>
-<div class="line"><a name="l05379"></a><span class="lineno"> 5379</span>&#160; <span class="keywordtype">int</span> tga_y_origin = stbi__get16le(s);</div>
-<div class="line"><a name="l05380"></a><span class="lineno"> 5380</span>&#160; <span class="keywordtype">int</span> tga_width = stbi__get16le(s);</div>
-<div class="line"><a name="l05381"></a><span class="lineno"> 5381</span>&#160; <span class="keywordtype">int</span> tga_height = stbi__get16le(s);</div>
-<div class="line"><a name="l05382"></a><span class="lineno"> 5382</span>&#160; <span class="keywordtype">int</span> tga_bits_per_pixel = stbi__get8(s);</div>
-<div class="line"><a name="l05383"></a><span class="lineno"> 5383</span>&#160; <span class="keywordtype">int</span> tga_comp, tga_rgb16=0;</div>
-<div class="line"><a name="l05384"></a><span class="lineno"> 5384</span>&#160; <span class="keywordtype">int</span> tga_inverted = stbi__get8(s);</div>
-<div class="line"><a name="l05385"></a><span class="lineno"> 5385</span>&#160; <span class="comment">// int tga_alpha_bits = tga_inverted &amp; 15; // the 4 lowest bits - unused (useless?)</span></div>
-<div class="line"><a name="l05386"></a><span class="lineno"> 5386</span>&#160; <span class="comment">// image data</span></div>
-<div class="line"><a name="l05387"></a><span class="lineno"> 5387</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tga_data;</div>
-<div class="line"><a name="l05388"></a><span class="lineno"> 5388</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tga_palette = NULL;</div>
-<div class="line"><a name="l05389"></a><span class="lineno"> 5389</span>&#160; <span class="keywordtype">int</span> i, j;</div>
-<div class="line"><a name="l05390"></a><span class="lineno"> 5390</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> raw_data[4] = {0};</div>
-<div class="line"><a name="l05391"></a><span class="lineno"> 5391</span>&#160; <span class="keywordtype">int</span> RLE_count = 0;</div>
-<div class="line"><a name="l05392"></a><span class="lineno"> 5392</span>&#160; <span class="keywordtype">int</span> RLE_repeating = 0;</div>
-<div class="line"><a name="l05393"></a><span class="lineno"> 5393</span>&#160; <span class="keywordtype">int</span> read_next_pixel = 1;</div>
-<div class="line"><a name="l05394"></a><span class="lineno"> 5394</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l05395"></a><span class="lineno"> 5395</span>&#160;</div>
-<div class="line"><a name="l05396"></a><span class="lineno"> 5396</span>&#160; <span class="comment">// do a tiny bit of precessing</span></div>
-<div class="line"><a name="l05397"></a><span class="lineno"> 5397</span>&#160; <span class="keywordflow">if</span> ( tga_image_type &gt;= 8 )</div>
-<div class="line"><a name="l05398"></a><span class="lineno"> 5398</span>&#160; {</div>
-<div class="line"><a name="l05399"></a><span class="lineno"> 5399</span>&#160; tga_image_type -= 8;</div>
-<div class="line"><a name="l05400"></a><span class="lineno"> 5400</span>&#160; tga_is_RLE = 1;</div>
-<div class="line"><a name="l05401"></a><span class="lineno"> 5401</span>&#160; }</div>
-<div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>&#160; tga_inverted = 1 - ((tga_inverted &gt;&gt; 5) &amp; 1);</div>
-<div class="line"><a name="l05403"></a><span class="lineno"> 5403</span>&#160;</div>
-<div class="line"><a name="l05404"></a><span class="lineno"> 5404</span>&#160; <span class="comment">// If I&#39;m paletted, then I&#39;ll use the number of bits from the palette</span></div>
-<div class="line"><a name="l05405"></a><span class="lineno"> 5405</span>&#160; <span class="keywordflow">if</span> ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &amp;tga_rgb16);</div>
-<div class="line"><a name="l05406"></a><span class="lineno"> 5406</span>&#160; <span class="keywordflow">else</span> tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &amp;tga_rgb16);</div>
-<div class="line"><a name="l05407"></a><span class="lineno"> 5407</span>&#160;</div>
-<div class="line"><a name="l05408"></a><span class="lineno"> 5408</span>&#160; <span class="keywordflow">if</span>(!tga_comp) <span class="comment">// shouldn&#39;t really happen, stbi__tga_test() should have ensured basic consistency</span></div>
-<div class="line"><a name="l05409"></a><span class="lineno"> 5409</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>, <span class="stringliteral">&quot;Can&#39;t find out TGA pixelformat&quot;</span>);</div>
-<div class="line"><a name="l05410"></a><span class="lineno"> 5410</span>&#160;</div>
-<div class="line"><a name="l05411"></a><span class="lineno"> 5411</span>&#160; <span class="comment">// tga info</span></div>
-<div class="line"><a name="l05412"></a><span class="lineno"> 5412</span>&#160; *x = tga_width;</div>
-<div class="line"><a name="l05413"></a><span class="lineno"> 5413</span>&#160; *y = tga_height;</div>
-<div class="line"><a name="l05414"></a><span class="lineno"> 5414</span>&#160; <span class="keywordflow">if</span> (comp) *comp = tga_comp;</div>
-<div class="line"><a name="l05415"></a><span class="lineno"> 5415</span>&#160;</div>
-<div class="line"><a name="l05416"></a><span class="lineno"> 5416</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))</div>
-<div class="line"><a name="l05417"></a><span class="lineno"> 5417</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt TGA&quot;</span>);</div>
-<div class="line"><a name="l05418"></a><span class="lineno"> 5418</span>&#160;</div>
-<div class="line"><a name="l05419"></a><span class="lineno"> 5419</span>&#160; tga_data = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);</div>
-<div class="line"><a name="l05420"></a><span class="lineno"> 5420</span>&#160; <span class="keywordflow">if</span> (!tga_data) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l05421"></a><span class="lineno"> 5421</span>&#160;</div>
-<div class="line"><a name="l05422"></a><span class="lineno"> 5422</span>&#160; <span class="comment">// skip to the data&#39;s starting position (offset usually = 0)</span></div>
-<div class="line"><a name="l05423"></a><span class="lineno"> 5423</span>&#160; stbi__skip(s, tga_offset );</div>
-<div class="line"><a name="l05424"></a><span class="lineno"> 5424</span>&#160;</div>
-<div class="line"><a name="l05425"></a><span class="lineno"> 5425</span>&#160; <span class="keywordflow">if</span> ( !tga_indexed &amp;&amp; !tga_is_RLE &amp;&amp; !tga_rgb16 ) {</div>
-<div class="line"><a name="l05426"></a><span class="lineno"> 5426</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; tga_height; ++i) {</div>
-<div class="line"><a name="l05427"></a><span class="lineno"> 5427</span>&#160; <span class="keywordtype">int</span> row = tga_inverted ? tga_height -i - 1 : i;</div>
-<div class="line"><a name="l05428"></a><span class="lineno"> 5428</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *tga_row = tga_data + row*tga_width*tga_comp;</div>
-<div class="line"><a name="l05429"></a><span class="lineno"> 5429</span>&#160; stbi__getn(s, tga_row, tga_width * tga_comp);</div>
-<div class="line"><a name="l05430"></a><span class="lineno"> 5430</span>&#160; }</div>
-<div class="line"><a name="l05431"></a><span class="lineno"> 5431</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05432"></a><span class="lineno"> 5432</span>&#160; <span class="comment">// do I need to load a palette?</span></div>
-<div class="line"><a name="l05433"></a><span class="lineno"> 5433</span>&#160; <span class="keywordflow">if</span> ( tga_indexed)</div>
-<div class="line"><a name="l05434"></a><span class="lineno"> 5434</span>&#160; {</div>
-<div class="line"><a name="l05435"></a><span class="lineno"> 5435</span>&#160; <span class="comment">// any data to skip? (offset usually = 0)</span></div>
-<div class="line"><a name="l05436"></a><span class="lineno"> 5436</span>&#160; stbi__skip(s, tga_palette_start );</div>
-<div class="line"><a name="l05437"></a><span class="lineno"> 5437</span>&#160; <span class="comment">// load the palette</span></div>
-<div class="line"><a name="l05438"></a><span class="lineno"> 5438</span>&#160; tga_palette = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);</div>
-<div class="line"><a name="l05439"></a><span class="lineno"> 5439</span>&#160; <span class="keywordflow">if</span> (!tga_palette) {</div>
-<div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>&#160; STBI_FREE(tga_data);</div>
-<div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l05442"></a><span class="lineno"> 5442</span>&#160; }</div>
-<div class="line"><a name="l05443"></a><span class="lineno"> 5443</span>&#160; <span class="keywordflow">if</span> (tga_rgb16) {</div>
-<div class="line"><a name="l05444"></a><span class="lineno"> 5444</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pal_entry = tga_palette;</div>
-<div class="line"><a name="l05445"></a><span class="lineno"> 5445</span>&#160; STBI_ASSERT(tga_comp == <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>);</div>
-<div class="line"><a name="l05446"></a><span class="lineno"> 5446</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; tga_palette_len; ++i) {</div>
-<div class="line"><a name="l05447"></a><span class="lineno"> 5447</span>&#160; stbi__tga_read_rgb16(s, pal_entry);</div>
-<div class="line"><a name="l05448"></a><span class="lineno"> 5448</span>&#160; pal_entry += tga_comp;</div>
-<div class="line"><a name="l05449"></a><span class="lineno"> 5449</span>&#160; }</div>
-<div class="line"><a name="l05450"></a><span class="lineno"> 5450</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) {</div>
-<div class="line"><a name="l05451"></a><span class="lineno"> 5451</span>&#160; STBI_FREE(tga_data);</div>
-<div class="line"><a name="l05452"></a><span class="lineno"> 5452</span>&#160; STBI_FREE(tga_palette);</div>
-<div class="line"><a name="l05453"></a><span class="lineno"> 5453</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad palette&quot;</span>, <span class="stringliteral">&quot;Corrupt TGA&quot;</span>);</div>
-<div class="line"><a name="l05454"></a><span class="lineno"> 5454</span>&#160; }</div>
-<div class="line"><a name="l05455"></a><span class="lineno"> 5455</span>&#160; }</div>
-<div class="line"><a name="l05456"></a><span class="lineno"> 5456</span>&#160; <span class="comment">// load the data</span></div>
-<div class="line"><a name="l05457"></a><span class="lineno"> 5457</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; tga_width * tga_height; ++i)</div>
-<div class="line"><a name="l05458"></a><span class="lineno"> 5458</span>&#160; {</div>
-<div class="line"><a name="l05459"></a><span class="lineno"> 5459</span>&#160; <span class="comment">// if I&#39;m in RLE mode, do I need to get a RLE stbi__pngchunk?</span></div>
-<div class="line"><a name="l05460"></a><span class="lineno"> 5460</span>&#160; <span class="keywordflow">if</span> ( tga_is_RLE )</div>
-<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span>&#160; {</div>
-<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>&#160; <span class="keywordflow">if</span> ( RLE_count == 0 )</div>
-<div class="line"><a name="l05463"></a><span class="lineno"> 5463</span>&#160; {</div>
-<div class="line"><a name="l05464"></a><span class="lineno"> 5464</span>&#160; <span class="comment">// yep, get the next byte as a RLE command</span></div>
-<div class="line"><a name="l05465"></a><span class="lineno"> 5465</span>&#160; <span class="keywordtype">int</span> RLE_cmd = stbi__get8(s);</div>
-<div class="line"><a name="l05466"></a><span class="lineno"> 5466</span>&#160; RLE_count = 1 + (RLE_cmd &amp; 127);</div>
-<div class="line"><a name="l05467"></a><span class="lineno"> 5467</span>&#160; RLE_repeating = RLE_cmd &gt;&gt; 7;</div>
-<div class="line"><a name="l05468"></a><span class="lineno"> 5468</span>&#160; read_next_pixel = 1;</div>
-<div class="line"><a name="l05469"></a><span class="lineno"> 5469</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( !RLE_repeating )</div>
-<div class="line"><a name="l05470"></a><span class="lineno"> 5470</span>&#160; {</div>
-<div class="line"><a name="l05471"></a><span class="lineno"> 5471</span>&#160; read_next_pixel = 1;</div>
-<div class="line"><a name="l05472"></a><span class="lineno"> 5472</span>&#160; }</div>
-<div class="line"><a name="l05473"></a><span class="lineno"> 5473</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05474"></a><span class="lineno"> 5474</span>&#160; {</div>
-<div class="line"><a name="l05475"></a><span class="lineno"> 5475</span>&#160; read_next_pixel = 1;</div>
-<div class="line"><a name="l05476"></a><span class="lineno"> 5476</span>&#160; }</div>
-<div class="line"><a name="l05477"></a><span class="lineno"> 5477</span>&#160; <span class="comment">// OK, if I need to read a pixel, do it now</span></div>
-<div class="line"><a name="l05478"></a><span class="lineno"> 5478</span>&#160; <span class="keywordflow">if</span> ( read_next_pixel )</div>
-<div class="line"><a name="l05479"></a><span class="lineno"> 5479</span>&#160; {</div>
-<div class="line"><a name="l05480"></a><span class="lineno"> 5480</span>&#160; <span class="comment">// load however much data we did have</span></div>
-<div class="line"><a name="l05481"></a><span class="lineno"> 5481</span>&#160; <span class="keywordflow">if</span> ( tga_indexed )</div>
-<div class="line"><a name="l05482"></a><span class="lineno"> 5482</span>&#160; {</div>
-<div class="line"><a name="l05483"></a><span class="lineno"> 5483</span>&#160; <span class="comment">// read in index, then perform the lookup</span></div>
-<div class="line"><a name="l05484"></a><span class="lineno"> 5484</span>&#160; <span class="keywordtype">int</span> pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s);</div>
-<div class="line"><a name="l05485"></a><span class="lineno"> 5485</span>&#160; <span class="keywordflow">if</span> ( pal_idx &gt;= tga_palette_len ) {</div>
-<div class="line"><a name="l05486"></a><span class="lineno"> 5486</span>&#160; <span class="comment">// invalid index</span></div>
-<div class="line"><a name="l05487"></a><span class="lineno"> 5487</span>&#160; pal_idx = 0;</div>
-<div class="line"><a name="l05488"></a><span class="lineno"> 5488</span>&#160; }</div>
-<div class="line"><a name="l05489"></a><span class="lineno"> 5489</span>&#160; pal_idx *= tga_comp;</div>
-<div class="line"><a name="l05490"></a><span class="lineno"> 5490</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j) {</div>
-<div class="line"><a name="l05491"></a><span class="lineno"> 5491</span>&#160; raw_data[j] = tga_palette[pal_idx+j];</div>
-<div class="line"><a name="l05492"></a><span class="lineno"> 5492</span>&#160; }</div>
-<div class="line"><a name="l05493"></a><span class="lineno"> 5493</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tga_rgb16) {</div>
-<div class="line"><a name="l05494"></a><span class="lineno"> 5494</span>&#160; STBI_ASSERT(tga_comp == <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>);</div>
-<div class="line"><a name="l05495"></a><span class="lineno"> 5495</span>&#160; stbi__tga_read_rgb16(s, raw_data);</div>
-<div class="line"><a name="l05496"></a><span class="lineno"> 5496</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05497"></a><span class="lineno"> 5497</span>&#160; <span class="comment">// read in the data raw</span></div>
-<div class="line"><a name="l05498"></a><span class="lineno"> 5498</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j) {</div>
-<div class="line"><a name="l05499"></a><span class="lineno"> 5499</span>&#160; raw_data[j] = stbi__get8(s);</div>
-<div class="line"><a name="l05500"></a><span class="lineno"> 5500</span>&#160; }</div>
-<div class="line"><a name="l05501"></a><span class="lineno"> 5501</span>&#160; }</div>
-<div class="line"><a name="l05502"></a><span class="lineno"> 5502</span>&#160; <span class="comment">// clear the reading flag for the next pixel</span></div>
-<div class="line"><a name="l05503"></a><span class="lineno"> 5503</span>&#160; read_next_pixel = 0;</div>
-<div class="line"><a name="l05504"></a><span class="lineno"> 5504</span>&#160; } <span class="comment">// end of reading a pixel</span></div>
-<div class="line"><a name="l05505"></a><span class="lineno"> 5505</span>&#160;</div>
-<div class="line"><a name="l05506"></a><span class="lineno"> 5506</span>&#160; <span class="comment">// copy data</span></div>
-<div class="line"><a name="l05507"></a><span class="lineno"> 5507</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j)</div>
-<div class="line"><a name="l05508"></a><span class="lineno"> 5508</span>&#160; tga_data[i*tga_comp+j] = raw_data[j];</div>
-<div class="line"><a name="l05509"></a><span class="lineno"> 5509</span>&#160;</div>
-<div class="line"><a name="l05510"></a><span class="lineno"> 5510</span>&#160; <span class="comment">// in case we&#39;re in RLE mode, keep counting down</span></div>
-<div class="line"><a name="l05511"></a><span class="lineno"> 5511</span>&#160; --RLE_count;</div>
-<div class="line"><a name="l05512"></a><span class="lineno"> 5512</span>&#160; }</div>
-<div class="line"><a name="l05513"></a><span class="lineno"> 5513</span>&#160; <span class="comment">// do I need to invert the image?</span></div>
-<div class="line"><a name="l05514"></a><span class="lineno"> 5514</span>&#160; <span class="keywordflow">if</span> ( tga_inverted )</div>
-<div class="line"><a name="l05515"></a><span class="lineno"> 5515</span>&#160; {</div>
-<div class="line"><a name="l05516"></a><span class="lineno"> 5516</span>&#160; <span class="keywordflow">for</span> (j = 0; j*2 &lt; tga_height; ++j)</div>
-<div class="line"><a name="l05517"></a><span class="lineno"> 5517</span>&#160; {</div>
-<div class="line"><a name="l05518"></a><span class="lineno"> 5518</span>&#160; <span class="keywordtype">int</span> index1 = j * tga_width * tga_comp;</div>
-<div class="line"><a name="l05519"></a><span class="lineno"> 5519</span>&#160; <span class="keywordtype">int</span> index2 = (tga_height - 1 - j) * tga_width * tga_comp;</div>
-<div class="line"><a name="l05520"></a><span class="lineno"> 5520</span>&#160; <span class="keywordflow">for</span> (i = tga_width * tga_comp; i &gt; 0; --i)</div>
-<div class="line"><a name="l05521"></a><span class="lineno"> 5521</span>&#160; {</div>
-<div class="line"><a name="l05522"></a><span class="lineno"> 5522</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> temp = tga_data[index1];</div>
-<div class="line"><a name="l05523"></a><span class="lineno"> 5523</span>&#160; tga_data[index1] = tga_data[index2];</div>
-<div class="line"><a name="l05524"></a><span class="lineno"> 5524</span>&#160; tga_data[index2] = temp;</div>
-<div class="line"><a name="l05525"></a><span class="lineno"> 5525</span>&#160; ++index1;</div>
-<div class="line"><a name="l05526"></a><span class="lineno"> 5526</span>&#160; ++index2;</div>
-<div class="line"><a name="l05527"></a><span class="lineno"> 5527</span>&#160; }</div>
-<div class="line"><a name="l05528"></a><span class="lineno"> 5528</span>&#160; }</div>
-<div class="line"><a name="l05529"></a><span class="lineno"> 5529</span>&#160; }</div>
-<div class="line"><a name="l05530"></a><span class="lineno"> 5530</span>&#160; <span class="comment">// clear my palette, if I had one</span></div>
-<div class="line"><a name="l05531"></a><span class="lineno"> 5531</span>&#160; <span class="keywordflow">if</span> ( tga_palette != NULL )</div>
-<div class="line"><a name="l05532"></a><span class="lineno"> 5532</span>&#160; {</div>
-<div class="line"><a name="l05533"></a><span class="lineno"> 5533</span>&#160; STBI_FREE( tga_palette );</div>
-<div class="line"><a name="l05534"></a><span class="lineno"> 5534</span>&#160; }</div>
-<div class="line"><a name="l05535"></a><span class="lineno"> 5535</span>&#160; }</div>
-<div class="line"><a name="l05536"></a><span class="lineno"> 5536</span>&#160;</div>
-<div class="line"><a name="l05537"></a><span class="lineno"> 5537</span>&#160; <span class="comment">// swap RGB - if the source data was RGB16, it already is in the right order</span></div>
-<div class="line"><a name="l05538"></a><span class="lineno"> 5538</span>&#160; <span class="keywordflow">if</span> (tga_comp &gt;= 3 &amp;&amp; !tga_rgb16)</div>
-<div class="line"><a name="l05539"></a><span class="lineno"> 5539</span>&#160; {</div>
-<div class="line"><a name="l05540"></a><span class="lineno"> 5540</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* tga_pixel = tga_data;</div>
-<div class="line"><a name="l05541"></a><span class="lineno"> 5541</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; tga_width * tga_height; ++i)</div>
-<div class="line"><a name="l05542"></a><span class="lineno"> 5542</span>&#160; {</div>
-<div class="line"><a name="l05543"></a><span class="lineno"> 5543</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> temp = tga_pixel[0];</div>
-<div class="line"><a name="l05544"></a><span class="lineno"> 5544</span>&#160; tga_pixel[0] = tga_pixel[2];</div>
-<div class="line"><a name="l05545"></a><span class="lineno"> 5545</span>&#160; tga_pixel[2] = temp;</div>
-<div class="line"><a name="l05546"></a><span class="lineno"> 5546</span>&#160; tga_pixel += tga_comp;</div>
-<div class="line"><a name="l05547"></a><span class="lineno"> 5547</span>&#160; }</div>
-<div class="line"><a name="l05548"></a><span class="lineno"> 5548</span>&#160; }</div>
-<div class="line"><a name="l05549"></a><span class="lineno"> 5549</span>&#160;</div>
-<div class="line"><a name="l05550"></a><span class="lineno"> 5550</span>&#160; <span class="comment">// convert to target component count</span></div>
-<div class="line"><a name="l05551"></a><span class="lineno"> 5551</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != tga_comp)</div>
-<div class="line"><a name="l05552"></a><span class="lineno"> 5552</span>&#160; tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);</div>
+<div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>&#160;}</div>
+<div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>&#160;</div>
+<div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__expand_png_palette(stbi__png *a, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *palette, <span class="keywordtype">int</span> len,</div>
+<div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>&#160; <span class="keywordtype">int</span> pal_img_n)</div>
+<div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>&#160;{</div>
+<div class="line"><a name="l05290"></a><span class="lineno"> 5290</span>&#160; stbi__uint32 i, pixel_count = a-&gt;s-&gt;img_x * a-&gt;s-&gt;img_y;</div>
+<div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, *temp_out, *orig = a-&gt;out;</div>
+<div class="line"><a name="l05292"></a><span class="lineno"> 5292</span>&#160;</div>
+<div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad2(pixel_count, pal_img_n, 0);</div>
+<div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>&#160;</div>
+<div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>&#160; <span class="comment">// between here and free(out) below, exitting would leak</span></div>
+<div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>&#160; temp_out = p;</div>
+<div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>&#160;</div>
+<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160; <span class="keywordflow">if</span> (pal_img_n == 3) {</div>
+<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>&#160; <span class="keywordtype">int</span> n = orig[i] * 4;</div>
+<div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>&#160; p[0] = palette[n];</div>
+<div class="line"><a name="l05304"></a><span class="lineno"> 5304</span>&#160; p[1] = palette[n + 1];</div>
+<div class="line"><a name="l05305"></a><span class="lineno"> 5305</span>&#160; p[2] = palette[n + 2];</div>
+<div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>&#160; p += 3;</div>
+<div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>&#160; }</div>
+<div class="line"><a name="l05308"></a><span class="lineno"> 5308</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05309"></a><span class="lineno"> 5309</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05310"></a><span class="lineno"> 5310</span>&#160; <span class="keywordtype">int</span> n = orig[i] * 4;</div>
+<div class="line"><a name="l05311"></a><span class="lineno"> 5311</span>&#160; p[0] = palette[n];</div>
+<div class="line"><a name="l05312"></a><span class="lineno"> 5312</span>&#160; p[1] = palette[n + 1];</div>
+<div class="line"><a name="l05313"></a><span class="lineno"> 5313</span>&#160; p[2] = palette[n + 2];</div>
+<div class="line"><a name="l05314"></a><span class="lineno"> 5314</span>&#160; p[3] = palette[n + 3];</div>
+<div class="line"><a name="l05315"></a><span class="lineno"> 5315</span>&#160; p += 4;</div>
+<div class="line"><a name="l05316"></a><span class="lineno"> 5316</span>&#160; }</div>
+<div class="line"><a name="l05317"></a><span class="lineno"> 5317</span>&#160; }</div>
+<div class="line"><a name="l05318"></a><span class="lineno"> 5318</span>&#160; STBI_FREE(a-&gt;out);</div>
+<div class="line"><a name="l05319"></a><span class="lineno"> 5319</span>&#160; a-&gt;out = temp_out;</div>
+<div class="line"><a name="l05320"></a><span class="lineno"> 5320</span>&#160;</div>
+<div class="line"><a name="l05321"></a><span class="lineno"> 5321</span>&#160; STBI_NOTUSED(len);</div>
+<div class="line"><a name="l05322"></a><span class="lineno"> 5322</span>&#160;</div>
+<div class="line"><a name="l05323"></a><span class="lineno"> 5323</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05324"></a><span class="lineno"> 5324</span>&#160;}</div>
+<div class="line"><a name="l05325"></a><span class="lineno"> 5325</span>&#160;</div>
+<div class="line"><a name="l05326"></a><span class="lineno"> 5326</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__unpremultiply_on_load = 0;</div>
+<div class="line"><a name="l05327"></a><span class="lineno"> 5327</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__de_iphone_flag = 0;</div>
+<div class="line"><a name="l05328"></a><span class="lineno"> 5328</span>&#160;</div>
+<div class="line"><a name="l05329"></a><span class="lineno"> 5329</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l05330"></a><span class="lineno"> 5330</span>&#160;<a class="code" href="stb__image_8h.html#a3f02e0053e1c8d08a3ed436e6a82c7c9">stbi_set_unpremultiply_on_load</a>(<span class="keywordtype">int</span> flag_true_if_should_unpremultiply)</div>
+<div class="line"><a name="l05331"></a><span class="lineno"> 5331</span>&#160;{</div>
+<div class="line"><a name="l05332"></a><span class="lineno"> 5332</span>&#160; stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply;</div>
+<div class="line"><a name="l05333"></a><span class="lineno"> 5333</span>&#160;}</div>
+<div class="line"><a name="l05334"></a><span class="lineno"> 5334</span>&#160;</div>
+<div class="line"><a name="l05335"></a><span class="lineno"> 5335</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">void</span> <a class="code" href="stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b">stbi_convert_iphone_png_to_rgb</a>(<span class="keywordtype">int</span> flag_true_if_should_convert)</div>
+<div class="line"><a name="l05336"></a><span class="lineno"> 5336</span>&#160;{</div>
+<div class="line"><a name="l05337"></a><span class="lineno"> 5337</span>&#160; stbi__de_iphone_flag = flag_true_if_should_convert;</div>
+<div class="line"><a name="l05338"></a><span class="lineno"> 5338</span>&#160;}</div>
+<div class="line"><a name="l05339"></a><span class="lineno"> 5339</span>&#160;</div>
+<div class="line"><a name="l05340"></a><span class="lineno"> 5340</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__de_iphone(stbi__png *z)</div>
+<div class="line"><a name="l05341"></a><span class="lineno"> 5341</span>&#160;{</div>
+<div class="line"><a name="l05342"></a><span class="lineno"> 5342</span>&#160; stbi__context *s = z-&gt;s;</div>
+<div class="line"><a name="l05343"></a><span class="lineno"> 5343</span>&#160; stbi__uint32 i, pixel_count = s-&gt;img_x * s-&gt;img_y;</div>
+<div class="line"><a name="l05344"></a><span class="lineno"> 5344</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = z-&gt;out;</div>
+<div class="line"><a name="l05345"></a><span class="lineno"> 5345</span>&#160;</div>
+<div class="line"><a name="l05346"></a><span class="lineno"> 5346</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_out_n == 3) { <span class="comment">// convert bgr to rgb</span></div>
+<div class="line"><a name="l05347"></a><span class="lineno"> 5347</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05348"></a><span class="lineno"> 5348</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
+<div class="line"><a name="l05349"></a><span class="lineno"> 5349</span>&#160; p[0] = p[2];</div>
+<div class="line"><a name="l05350"></a><span class="lineno"> 5350</span>&#160; p[2] = t;</div>
+<div class="line"><a name="l05351"></a><span class="lineno"> 5351</span>&#160; p += 3;</div>
+<div class="line"><a name="l05352"></a><span class="lineno"> 5352</span>&#160; }</div>
+<div class="line"><a name="l05353"></a><span class="lineno"> 5353</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05354"></a><span class="lineno"> 5354</span>&#160; STBI_ASSERT(s-&gt;img_out_n == 4);</div>
+<div class="line"><a name="l05355"></a><span class="lineno"> 5355</span>&#160; <span class="keywordflow">if</span> (stbi__unpremultiply_on_load) {</div>
+<div class="line"><a name="l05356"></a><span class="lineno"> 5356</span>&#160; <span class="comment">// convert bgr to rgb and unpremultiply</span></div>
+<div class="line"><a name="l05357"></a><span class="lineno"> 5357</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05358"></a><span class="lineno"> 5358</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> a = p[3];</div>
+<div class="line"><a name="l05359"></a><span class="lineno"> 5359</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
+<div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>&#160; <span class="keywordflow">if</span> (a) {</div>
+<div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> half = a / 2;</div>
+<div class="line"><a name="l05362"></a><span class="lineno"> 5362</span>&#160; p[0] = (p[2] * 255 + half) / a;</div>
+<div class="line"><a name="l05363"></a><span class="lineno"> 5363</span>&#160; p[1] = (p[1] * 255 + half) / a;</div>
+<div class="line"><a name="l05364"></a><span class="lineno"> 5364</span>&#160; p[2] = (t * 255 + half) / a;</div>
+<div class="line"><a name="l05365"></a><span class="lineno"> 5365</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05366"></a><span class="lineno"> 5366</span>&#160; p[0] = p[2];</div>
+<div class="line"><a name="l05367"></a><span class="lineno"> 5367</span>&#160; p[2] = t;</div>
+<div class="line"><a name="l05368"></a><span class="lineno"> 5368</span>&#160; }</div>
+<div class="line"><a name="l05369"></a><span class="lineno"> 5369</span>&#160; p += 4;</div>
+<div class="line"><a name="l05370"></a><span class="lineno"> 5370</span>&#160; }</div>
+<div class="line"><a name="l05371"></a><span class="lineno"> 5371</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05372"></a><span class="lineno"> 5372</span>&#160; <span class="comment">// convert bgr to rgb</span></div>
+<div class="line"><a name="l05373"></a><span class="lineno"> 5373</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixel_count; ++i) {</div>
+<div class="line"><a name="l05374"></a><span class="lineno"> 5374</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t = p[0];</div>
+<div class="line"><a name="l05375"></a><span class="lineno"> 5375</span>&#160; p[0] = p[2];</div>
+<div class="line"><a name="l05376"></a><span class="lineno"> 5376</span>&#160; p[2] = t;</div>
+<div class="line"><a name="l05377"></a><span class="lineno"> 5377</span>&#160; p += 4;</div>
+<div class="line"><a name="l05378"></a><span class="lineno"> 5378</span>&#160; }</div>
+<div class="line"><a name="l05379"></a><span class="lineno"> 5379</span>&#160; }</div>
+<div class="line"><a name="l05380"></a><span class="lineno"> 5380</span>&#160; }</div>
+<div class="line"><a name="l05381"></a><span class="lineno"> 5381</span>&#160;}</div>
+<div class="line"><a name="l05382"></a><span class="lineno"> 5382</span>&#160;</div>
+<div class="line"><a name="l05383"></a><span class="lineno"> 5383</span>&#160;<span class="preprocessor">#define STBI__PNG_TYPE(a, b, c, d) \</span></div>
+<div class="line"><a name="l05384"></a><span class="lineno"> 5384</span>&#160;<span class="preprocessor"> (((a) &lt;&lt; 24) + ((b) &lt;&lt; 16) + ((c) &lt;&lt; 8) + (d))</span></div>
+<div class="line"><a name="l05385"></a><span class="lineno"> 5385</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l05386"></a><span class="lineno"> 5386</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__parse_png_file(stbi__png *z, <span class="keywordtype">int</span> scan, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l05387"></a><span class="lineno"> 5387</span>&#160;{</div>
+<div class="line"><a name="l05388"></a><span class="lineno"> 5388</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> palette[1024], pal_img_n = 0;</div>
+<div class="line"><a name="l05389"></a><span class="lineno"> 5389</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> has_trans = 0, tc[3];</div>
+<div class="line"><a name="l05390"></a><span class="lineno"> 5390</span>&#160; stbi__uint16 tc16[3];</div>
+<div class="line"><a name="l05391"></a><span class="lineno"> 5391</span>&#160; stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0;</div>
+<div class="line"><a name="l05392"></a><span class="lineno"> 5392</span>&#160; <span class="keywordtype">int</span> first = 1, k, interlace = 0, color = 0, is_iphone = 0;</div>
+<div class="line"><a name="l05393"></a><span class="lineno"> 5393</span>&#160; stbi__context *s = z-&gt;s;</div>
+<div class="line"><a name="l05394"></a><span class="lineno"> 5394</span>&#160;</div>
+<div class="line"><a name="l05395"></a><span class="lineno"> 5395</span>&#160; z-&gt;expanded = NULL;</div>
+<div class="line"><a name="l05396"></a><span class="lineno"> 5396</span>&#160; z-&gt;idata = NULL;</div>
+<div class="line"><a name="l05397"></a><span class="lineno"> 5397</span>&#160; z-&gt;out = NULL;</div>
+<div class="line"><a name="l05398"></a><span class="lineno"> 5398</span>&#160;</div>
+<div class="line"><a name="l05399"></a><span class="lineno"> 5399</span>&#160; <span class="keywordflow">if</span> (!stbi__check_png_header(s))</div>
+<div class="line"><a name="l05400"></a><span class="lineno"> 5400</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05401"></a><span class="lineno"> 5401</span>&#160;</div>
+<div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_type)</div>
+<div class="line"><a name="l05403"></a><span class="lineno"> 5403</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05404"></a><span class="lineno"> 5404</span>&#160;</div>
+<div class="line"><a name="l05405"></a><span class="lineno"> 5405</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l05406"></a><span class="lineno"> 5406</span>&#160; stbi__pngchunk c = stbi__get_chunk_header(s);</div>
+<div class="line"><a name="l05407"></a><span class="lineno"> 5407</span>&#160; <span class="keywordflow">switch</span> (c.type) {</div>
+<div class="line"><a name="l05408"></a><span class="lineno"> 5408</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;g&#39;</span>, <span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;I&#39;</span>):</div>
+<div class="line"><a name="l05409"></a><span class="lineno"> 5409</span>&#160; is_iphone = 1;</div>
+<div class="line"><a name="l05410"></a><span class="lineno"> 5410</span>&#160; stbi__skip(s, c.length);</div>
+<div class="line"><a name="l05411"></a><span class="lineno"> 5411</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05412"></a><span class="lineno"> 5412</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;H&#39;</span>, <span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;R&#39;</span>): {</div>
+<div class="line"><a name="l05413"></a><span class="lineno"> 5413</span>&#160; <span class="keywordtype">int</span> comp, filter;</div>
+<div class="line"><a name="l05414"></a><span class="lineno"> 5414</span>&#160; <span class="keywordflow">if</span> (!first)</div>
+<div class="line"><a name="l05415"></a><span class="lineno"> 5415</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;multiple IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05416"></a><span class="lineno"> 5416</span>&#160; first = 0;</div>
+<div class="line"><a name="l05417"></a><span class="lineno"> 5417</span>&#160; <span class="keywordflow">if</span> (c.length != 13)</div>
+<div class="line"><a name="l05418"></a><span class="lineno"> 5418</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad IHDR len&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05419"></a><span class="lineno"> 5419</span>&#160; s-&gt;img_x = stbi__get32be(s);</div>
+<div class="line"><a name="l05420"></a><span class="lineno"> 5420</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_x &gt; (1 &lt;&lt; 24))</div>
+<div class="line"><a name="l05421"></a><span class="lineno"> 5421</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Very large image (corrupt?)&quot;</span>);</div>
+<div class="line"><a name="l05422"></a><span class="lineno"> 5422</span>&#160; s-&gt;img_y = stbi__get32be(s);</div>
+<div class="line"><a name="l05423"></a><span class="lineno"> 5423</span>&#160; <span class="keywordflow">if</span> (s-&gt;img_y &gt; (1 &lt;&lt; 24))</div>
+<div class="line"><a name="l05424"></a><span class="lineno"> 5424</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Very large image (corrupt?)&quot;</span>);</div>
+<div class="line"><a name="l05425"></a><span class="lineno"> 5425</span>&#160; z-&gt;depth = stbi__get8(s);</div>
+<div class="line"><a name="l05426"></a><span class="lineno"> 5426</span>&#160; <span class="keywordflow">if</span> (z-&gt;depth != 1 &amp;&amp; z-&gt;depth != 2 &amp;&amp; z-&gt;depth != 4 &amp;&amp;</div>
+<div class="line"><a name="l05427"></a><span class="lineno"> 5427</span>&#160; z-&gt;depth != 8 &amp;&amp; z-&gt;depth != 16)</div>
+<div class="line"><a name="l05428"></a><span class="lineno"> 5428</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;1/2/4/8/16-bit only&quot;</span>,</div>
+<div class="line"><a name="l05429"></a><span class="lineno"> 5429</span>&#160; <span class="stringliteral">&quot;PNG not supported: 1/2/4/8/16-bit only&quot;</span>);</div>
+<div class="line"><a name="l05430"></a><span class="lineno"> 5430</span>&#160; color = stbi__get8(s);</div>
+<div class="line"><a name="l05431"></a><span class="lineno"> 5431</span>&#160; <span class="keywordflow">if</span> (color &gt; 6)</div>
+<div class="line"><a name="l05432"></a><span class="lineno"> 5432</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05433"></a><span class="lineno"> 5433</span>&#160; <span class="keywordflow">if</span> (color == 3 &amp;&amp; z-&gt;depth == 16)</div>
+<div class="line"><a name="l05434"></a><span class="lineno"> 5434</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05435"></a><span class="lineno"> 5435</span>&#160; <span class="keywordflow">if</span> (color == 3)</div>
+<div class="line"><a name="l05436"></a><span class="lineno"> 5436</span>&#160; pal_img_n = 3;</div>
+<div class="line"><a name="l05437"></a><span class="lineno"> 5437</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (color &amp; 1)</div>
+<div class="line"><a name="l05438"></a><span class="lineno"> 5438</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad ctype&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05439"></a><span class="lineno"> 5439</span>&#160; comp = stbi__get8(s);</div>
+<div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad comp method&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05442"></a><span class="lineno"> 5442</span>&#160; filter = stbi__get8(s);</div>
+<div class="line"><a name="l05443"></a><span class="lineno"> 5443</span>&#160; <span class="keywordflow">if</span> (filter)</div>
+<div class="line"><a name="l05444"></a><span class="lineno"> 5444</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad filter method&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05445"></a><span class="lineno"> 5445</span>&#160; interlace = stbi__get8(s);</div>
+<div class="line"><a name="l05446"></a><span class="lineno"> 5446</span>&#160; <span class="keywordflow">if</span> (interlace &gt; 1)</div>
+<div class="line"><a name="l05447"></a><span class="lineno"> 5447</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad interlace method&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05448"></a><span class="lineno"> 5448</span>&#160; <span class="keywordflow">if</span> (!s-&gt;img_x || !s-&gt;img_y)</div>
+<div class="line"><a name="l05449"></a><span class="lineno"> 5449</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;0-pixel image&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05450"></a><span class="lineno"> 5450</span>&#160; <span class="keywordflow">if</span> (!pal_img_n) {</div>
+<div class="line"><a name="l05451"></a><span class="lineno"> 5451</span>&#160; s-&gt;img_n = (color &amp; 2 ? 3 : 1) + (color &amp; 4 ? 1 : 0);</div>
+<div class="line"><a name="l05452"></a><span class="lineno"> 5452</span>&#160; <span class="keywordflow">if</span> ((1 &lt;&lt; 30) / s-&gt;img_x / s-&gt;img_n &lt; s-&gt;img_y)</div>
+<div class="line"><a name="l05453"></a><span class="lineno"> 5453</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Image too large to decode&quot;</span>);</div>
+<div class="line"><a name="l05454"></a><span class="lineno"> 5454</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header)</div>
+<div class="line"><a name="l05455"></a><span class="lineno"> 5455</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05456"></a><span class="lineno"> 5456</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05457"></a><span class="lineno"> 5457</span>&#160; <span class="comment">// if paletted, then pal_n is our final components, and</span></div>
+<div class="line"><a name="l05458"></a><span class="lineno"> 5458</span>&#160; <span class="comment">// img_n is # components to decompress/filter.</span></div>
+<div class="line"><a name="l05459"></a><span class="lineno"> 5459</span>&#160; s-&gt;img_n = 1;</div>
+<div class="line"><a name="l05460"></a><span class="lineno"> 5460</span>&#160; <span class="keywordflow">if</span> ((1 &lt;&lt; 30) / s-&gt;img_x / 4 &lt; s-&gt;img_y)</div>
+<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>&#160; <span class="comment">// if SCAN_header, have to scan to see if we have a tRNS</span></div>
+<div class="line"><a name="l05463"></a><span class="lineno"> 5463</span>&#160; }</div>
+<div class="line"><a name="l05464"></a><span class="lineno"> 5464</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05465"></a><span class="lineno"> 5465</span>&#160; }</div>
+<div class="line"><a name="l05466"></a><span class="lineno"> 5466</span>&#160;</div>
+<div class="line"><a name="l05467"></a><span class="lineno"> 5467</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;E&#39;</span>): {</div>
+<div class="line"><a name="l05468"></a><span class="lineno"> 5468</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l05469"></a><span class="lineno"> 5469</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05470"></a><span class="lineno"> 5470</span>&#160; <span class="keywordflow">if</span> (c.length &gt; 256 * 3)</div>
+<div class="line"><a name="l05471"></a><span class="lineno"> 5471</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid PLTE&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05472"></a><span class="lineno"> 5472</span>&#160; pal_len = c.length / 3;</div>
+<div class="line"><a name="l05473"></a><span class="lineno"> 5473</span>&#160; <span class="keywordflow">if</span> (pal_len * 3 != c.length)</div>
+<div class="line"><a name="l05474"></a><span class="lineno"> 5474</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;invalid PLTE&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05475"></a><span class="lineno"> 5475</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pal_len; ++i) {</div>
+<div class="line"><a name="l05476"></a><span class="lineno"> 5476</span>&#160; palette[i * 4 + 0] = stbi__get8(s);</div>
+<div class="line"><a name="l05477"></a><span class="lineno"> 5477</span>&#160; palette[i * 4 + 1] = stbi__get8(s);</div>
+<div class="line"><a name="l05478"></a><span class="lineno"> 5478</span>&#160; palette[i * 4 + 2] = stbi__get8(s);</div>
+<div class="line"><a name="l05479"></a><span class="lineno"> 5479</span>&#160; palette[i * 4 + 3] = 255;</div>
+<div class="line"><a name="l05480"></a><span class="lineno"> 5480</span>&#160; }</div>
+<div class="line"><a name="l05481"></a><span class="lineno"> 5481</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05482"></a><span class="lineno"> 5482</span>&#160; }</div>
+<div class="line"><a name="l05483"></a><span class="lineno"> 5483</span>&#160;</div>
+<div class="line"><a name="l05484"></a><span class="lineno"> 5484</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;t&#39;</span>, <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;S&#39;</span>): {</div>
+<div class="line"><a name="l05485"></a><span class="lineno"> 5485</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l05486"></a><span class="lineno"> 5486</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05487"></a><span class="lineno"> 5487</span>&#160; <span class="keywordflow">if</span> (z-&gt;idata)</div>
+<div class="line"><a name="l05488"></a><span class="lineno"> 5488</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS after IDAT&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05489"></a><span class="lineno"> 5489</span>&#160; <span class="keywordflow">if</span> (pal_img_n) {</div>
+<div class="line"><a name="l05490"></a><span class="lineno"> 5490</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header) {</div>
+<div class="line"><a name="l05491"></a><span class="lineno"> 5491</span>&#160; s-&gt;img_n = 4;</div>
+<div class="line"><a name="l05492"></a><span class="lineno"> 5492</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05493"></a><span class="lineno"> 5493</span>&#160; }</div>
+<div class="line"><a name="l05494"></a><span class="lineno"> 5494</span>&#160; <span class="keywordflow">if</span> (pal_len == 0)</div>
+<div class="line"><a name="l05495"></a><span class="lineno"> 5495</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS before PLTE&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05496"></a><span class="lineno"> 5496</span>&#160; <span class="keywordflow">if</span> (c.length &gt; pal_len)</div>
+<div class="line"><a name="l05497"></a><span class="lineno"> 5497</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad tRNS len&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05498"></a><span class="lineno"> 5498</span>&#160; pal_img_n = 4;</div>
+<div class="line"><a name="l05499"></a><span class="lineno"> 5499</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; c.length; ++i)</div>
+<div class="line"><a name="l05500"></a><span class="lineno"> 5500</span>&#160; palette[i * 4 + 3] = stbi__get8(s);</div>
+<div class="line"><a name="l05501"></a><span class="lineno"> 5501</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05502"></a><span class="lineno"> 5502</span>&#160; <span class="keywordflow">if</span> (!(s-&gt;img_n &amp; 1))</div>
+<div class="line"><a name="l05503"></a><span class="lineno"> 5503</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;tRNS with alpha&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05504"></a><span class="lineno"> 5504</span>&#160; <span class="keywordflow">if</span> (c.length != (stbi__uint32)s-&gt;img_n * 2)</div>
+<div class="line"><a name="l05505"></a><span class="lineno"> 5505</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;bad tRNS len&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05506"></a><span class="lineno"> 5506</span>&#160; has_trans = 1;</div>
+<div class="line"><a name="l05507"></a><span class="lineno"> 5507</span>&#160; <span class="keywordflow">if</span> (z-&gt;depth == 16) {</div>
+<div class="line"><a name="l05508"></a><span class="lineno"> 5508</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; s-&gt;img_n; ++k)</div>
+<div class="line"><a name="l05509"></a><span class="lineno"> 5509</span>&#160; tc16[k] = (stbi__uint16)stbi__get16be(</div>
+<div class="line"><a name="l05510"></a><span class="lineno"> 5510</span>&#160; s); <span class="comment">// copy the values as-is</span></div>
+<div class="line"><a name="l05511"></a><span class="lineno"> 5511</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05512"></a><span class="lineno"> 5512</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; s-&gt;img_n; ++k)</div>
+<div class="line"><a name="l05513"></a><span class="lineno"> 5513</span>&#160; tc[k] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(stbi__get16be(s) &amp; 255) *</div>
+<div class="line"><a name="l05514"></a><span class="lineno"> 5514</span>&#160; stbi__depth_scale_table[z-&gt;depth]; <span class="comment">// non 8-bit</span></div>
+<div class="line"><a name="l05515"></a><span class="lineno"> 5515</span>&#160; <span class="comment">// images</span></div>
+<div class="line"><a name="l05516"></a><span class="lineno"> 5516</span>&#160; <span class="comment">// will be</span></div>
+<div class="line"><a name="l05517"></a><span class="lineno"> 5517</span>&#160; <span class="comment">// larger</span></div>
+<div class="line"><a name="l05518"></a><span class="lineno"> 5518</span>&#160; }</div>
+<div class="line"><a name="l05519"></a><span class="lineno"> 5519</span>&#160; }</div>
+<div class="line"><a name="l05520"></a><span class="lineno"> 5520</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05521"></a><span class="lineno"> 5521</span>&#160; }</div>
+<div class="line"><a name="l05522"></a><span class="lineno"> 5522</span>&#160;</div>
+<div class="line"><a name="l05523"></a><span class="lineno"> 5523</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>): {</div>
+<div class="line"><a name="l05524"></a><span class="lineno"> 5524</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l05525"></a><span class="lineno"> 5525</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05526"></a><span class="lineno"> 5526</span>&#160; <span class="keywordflow">if</span> (pal_img_n &amp;&amp; !pal_len)</div>
+<div class="line"><a name="l05527"></a><span class="lineno"> 5527</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no PLTE&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05528"></a><span class="lineno"> 5528</span>&#160; <span class="keywordflow">if</span> (scan == STBI__SCAN_header) {</div>
+<div class="line"><a name="l05529"></a><span class="lineno"> 5529</span>&#160; s-&gt;img_n = pal_img_n;</div>
+<div class="line"><a name="l05530"></a><span class="lineno"> 5530</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05531"></a><span class="lineno"> 5531</span>&#160; }</div>
+<div class="line"><a name="l05532"></a><span class="lineno"> 5532</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)(ioff + c.length) &lt; (<span class="keywordtype">int</span>)ioff)</div>
+<div class="line"><a name="l05533"></a><span class="lineno"> 5533</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05534"></a><span class="lineno"> 5534</span>&#160; <span class="keywordflow">if</span> (ioff + c.length &gt; idata_limit) {</div>
+<div class="line"><a name="l05535"></a><span class="lineno"> 5535</span>&#160; stbi__uint32 idata_limit_old = idata_limit;</div>
+<div class="line"><a name="l05536"></a><span class="lineno"> 5536</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
+<div class="line"><a name="l05537"></a><span class="lineno"> 5537</span>&#160; <span class="keywordflow">if</span> (idata_limit == 0)</div>
+<div class="line"><a name="l05538"></a><span class="lineno"> 5538</span>&#160; idata_limit = c.length &gt; 4096 ? c.length : 4096;</div>
+<div class="line"><a name="l05539"></a><span class="lineno"> 5539</span>&#160; <span class="keywordflow">while</span> (ioff + c.length &gt; idata_limit)</div>
+<div class="line"><a name="l05540"></a><span class="lineno"> 5540</span>&#160; idata_limit *= 2;</div>
+<div class="line"><a name="l05541"></a><span class="lineno"> 5541</span>&#160; STBI_NOTUSED(idata_limit_old);</div>
+<div class="line"><a name="l05542"></a><span class="lineno"> 5542</span>&#160; p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)STBI_REALLOC_SIZED(z-&gt;idata, idata_limit_old,</div>
+<div class="line"><a name="l05543"></a><span class="lineno"> 5543</span>&#160; idata_limit);</div>
+<div class="line"><a name="l05544"></a><span class="lineno"> 5544</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l05545"></a><span class="lineno"> 5545</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l05546"></a><span class="lineno"> 5546</span>&#160; z-&gt;idata = p;</div>
+<div class="line"><a name="l05547"></a><span class="lineno"> 5547</span>&#160; }</div>
+<div class="line"><a name="l05548"></a><span class="lineno"> 5548</span>&#160; <span class="keywordflow">if</span> (!stbi__getn(s, z-&gt;idata + ioff, c.length))</div>
+<div class="line"><a name="l05549"></a><span class="lineno"> 5549</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;outofdata&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05550"></a><span class="lineno"> 5550</span>&#160; ioff += c.length;</div>
+<div class="line"><a name="l05551"></a><span class="lineno"> 5551</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05552"></a><span class="lineno"> 5552</span>&#160; }</div>
<div class="line"><a name="l05553"></a><span class="lineno"> 5553</span>&#160;</div>
-<div class="line"><a name="l05554"></a><span class="lineno"> 5554</span>&#160; <span class="comment">// the things I do to get rid of an error message, and yet keep</span></div>
-<div class="line"><a name="l05555"></a><span class="lineno"> 5555</span>&#160; <span class="comment">// Microsoft&#39;s C compilers happy... [8^(</span></div>
-<div class="line"><a name="l05556"></a><span class="lineno"> 5556</span>&#160; tga_palette_start = tga_palette_len = tga_palette_bits =</div>
-<div class="line"><a name="l05557"></a><span class="lineno"> 5557</span>&#160; tga_x_origin = tga_y_origin = 0;</div>
-<div class="line"><a name="l05558"></a><span class="lineno"> 5558</span>&#160; <span class="comment">// OK, done</span></div>
-<div class="line"><a name="l05559"></a><span class="lineno"> 5559</span>&#160; <span class="keywordflow">return</span> tga_data;</div>
-<div class="line"><a name="l05560"></a><span class="lineno"> 5560</span>&#160;}</div>
-<div class="line"><a name="l05561"></a><span class="lineno"> 5561</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05562"></a><span class="lineno"> 5562</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l05563"></a><span class="lineno"> 5563</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
-<div class="line"><a name="l05564"></a><span class="lineno"> 5564</span>&#160;<span class="comment">// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB</span></div>
-<div class="line"><a name="l05565"></a><span class="lineno"> 5565</span>&#160;</div>
-<div class="line"><a name="l05566"></a><span class="lineno"> 5566</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
-<div class="line"><a name="l05567"></a><span class="lineno"> 5567</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_test(stbi__context *s)</div>
-<div class="line"><a name="l05568"></a><span class="lineno"> 5568</span>&#160;{</div>
-<div class="line"><a name="l05569"></a><span class="lineno"> 5569</span>&#160; <span class="keywordtype">int</span> r = (stbi__get32be(s) == 0x38425053);</div>
-<div class="line"><a name="l05570"></a><span class="lineno"> 5570</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l05571"></a><span class="lineno"> 5571</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l05572"></a><span class="lineno"> 5572</span>&#160;}</div>
-<div class="line"><a name="l05573"></a><span class="lineno"> 5573</span>&#160;</div>
-<div class="line"><a name="l05574"></a><span class="lineno"> 5574</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_decode_rle(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, <span class="keywordtype">int</span> pixelCount)</div>
-<div class="line"><a name="l05575"></a><span class="lineno"> 5575</span>&#160;{</div>
-<div class="line"><a name="l05576"></a><span class="lineno"> 5576</span>&#160; <span class="keywordtype">int</span> count, nleft, len;</div>
-<div class="line"><a name="l05577"></a><span class="lineno"> 5577</span>&#160;</div>
-<div class="line"><a name="l05578"></a><span class="lineno"> 5578</span>&#160; count = 0;</div>
-<div class="line"><a name="l05579"></a><span class="lineno"> 5579</span>&#160; <span class="keywordflow">while</span> ((nleft = pixelCount - count) &gt; 0) {</div>
-<div class="line"><a name="l05580"></a><span class="lineno"> 5580</span>&#160; len = stbi__get8(s);</div>
-<div class="line"><a name="l05581"></a><span class="lineno"> 5581</span>&#160; <span class="keywordflow">if</span> (len == 128) {</div>
-<div class="line"><a name="l05582"></a><span class="lineno"> 5582</span>&#160; <span class="comment">// No-op.</span></div>
-<div class="line"><a name="l05583"></a><span class="lineno"> 5583</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &lt; 128) {</div>
-<div class="line"><a name="l05584"></a><span class="lineno"> 5584</span>&#160; <span class="comment">// Copy next len+1 bytes literally.</span></div>
-<div class="line"><a name="l05585"></a><span class="lineno"> 5585</span>&#160; len++;</div>
-<div class="line"><a name="l05586"></a><span class="lineno"> 5586</span>&#160; <span class="keywordflow">if</span> (len &gt; nleft) <span class="keywordflow">return</span> 0; <span class="comment">// corrupt data</span></div>
-<div class="line"><a name="l05587"></a><span class="lineno"> 5587</span>&#160; count += len;</div>
-<div class="line"><a name="l05588"></a><span class="lineno"> 5588</span>&#160; <span class="keywordflow">while</span> (len) {</div>
-<div class="line"><a name="l05589"></a><span class="lineno"> 5589</span>&#160; *p = stbi__get8(s);</div>
-<div class="line"><a name="l05590"></a><span class="lineno"> 5590</span>&#160; p += 4;</div>
-<div class="line"><a name="l05591"></a><span class="lineno"> 5591</span>&#160; len--;</div>
-<div class="line"><a name="l05592"></a><span class="lineno"> 5592</span>&#160; }</div>
-<div class="line"><a name="l05593"></a><span class="lineno"> 5593</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &gt; 128) {</div>
-<div class="line"><a name="l05594"></a><span class="lineno"> 5594</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> val;</div>
-<div class="line"><a name="l05595"></a><span class="lineno"> 5595</span>&#160; <span class="comment">// Next -len+1 bytes in the dest are replicated from next source byte.</span></div>
-<div class="line"><a name="l05596"></a><span class="lineno"> 5596</span>&#160; <span class="comment">// (Interpret len as a negative 8-bit int.)</span></div>
-<div class="line"><a name="l05597"></a><span class="lineno"> 5597</span>&#160; len = 257 - len;</div>
-<div class="line"><a name="l05598"></a><span class="lineno"> 5598</span>&#160; <span class="keywordflow">if</span> (len &gt; nleft) <span class="keywordflow">return</span> 0; <span class="comment">// corrupt data</span></div>
-<div class="line"><a name="l05599"></a><span class="lineno"> 5599</span>&#160; val = stbi__get8(s);</div>
-<div class="line"><a name="l05600"></a><span class="lineno"> 5600</span>&#160; count += len;</div>
-<div class="line"><a name="l05601"></a><span class="lineno"> 5601</span>&#160; <span class="keywordflow">while</span> (len) {</div>
-<div class="line"><a name="l05602"></a><span class="lineno"> 5602</span>&#160; *p = val;</div>
-<div class="line"><a name="l05603"></a><span class="lineno"> 5603</span>&#160; p += 4;</div>
-<div class="line"><a name="l05604"></a><span class="lineno"> 5604</span>&#160; len--;</div>
-<div class="line"><a name="l05605"></a><span class="lineno"> 5605</span>&#160; }</div>
-<div class="line"><a name="l05606"></a><span class="lineno"> 5606</span>&#160; }</div>
-<div class="line"><a name="l05607"></a><span class="lineno"> 5607</span>&#160; }</div>
-<div class="line"><a name="l05608"></a><span class="lineno"> 5608</span>&#160;</div>
-<div class="line"><a name="l05609"></a><span class="lineno"> 5609</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l05610"></a><span class="lineno"> 5610</span>&#160;}</div>
-<div class="line"><a name="l05611"></a><span class="lineno"> 5611</span>&#160;</div>
-<div class="line"><a name="l05612"></a><span class="lineno"> 5612</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__psd_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc)</div>
-<div class="line"><a name="l05613"></a><span class="lineno"> 5613</span>&#160;{</div>
-<div class="line"><a name="l05614"></a><span class="lineno"> 5614</span>&#160; <span class="keywordtype">int</span> pixelCount;</div>
-<div class="line"><a name="l05615"></a><span class="lineno"> 5615</span>&#160; <span class="keywordtype">int</span> channelCount, compression;</div>
-<div class="line"><a name="l05616"></a><span class="lineno"> 5616</span>&#160; <span class="keywordtype">int</span> channel, i;</div>
-<div class="line"><a name="l05617"></a><span class="lineno"> 5617</span>&#160; <span class="keywordtype">int</span> bitdepth;</div>
-<div class="line"><a name="l05618"></a><span class="lineno"> 5618</span>&#160; <span class="keywordtype">int</span> w,h;</div>
-<div class="line"><a name="l05619"></a><span class="lineno"> 5619</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
-<div class="line"><a name="l05620"></a><span class="lineno"> 5620</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l05621"></a><span class="lineno"> 5621</span>&#160;</div>
-<div class="line"><a name="l05622"></a><span class="lineno"> 5622</span>&#160; <span class="comment">// Check identifier</span></div>
-<div class="line"><a name="l05623"></a><span class="lineno"> 5623</span>&#160; <span class="keywordflow">if</span> (stbi__get32be(s) != 0x38425053) <span class="comment">// &quot;8BPS&quot;</span></div>
-<div class="line"><a name="l05624"></a><span class="lineno"> 5624</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;not PSD&quot;</span>, <span class="stringliteral">&quot;Corrupt PSD image&quot;</span>);</div>
-<div class="line"><a name="l05625"></a><span class="lineno"> 5625</span>&#160;</div>
-<div class="line"><a name="l05626"></a><span class="lineno"> 5626</span>&#160; <span class="comment">// Check file type version.</span></div>
-<div class="line"><a name="l05627"></a><span class="lineno"> 5627</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 1)</div>
-<div class="line"><a name="l05628"></a><span class="lineno"> 5628</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong version&quot;</span>, <span class="stringliteral">&quot;Unsupported version of PSD image&quot;</span>);</div>
-<div class="line"><a name="l05629"></a><span class="lineno"> 5629</span>&#160;</div>
-<div class="line"><a name="l05630"></a><span class="lineno"> 5630</span>&#160; <span class="comment">// Skip 6 reserved bytes.</span></div>
-<div class="line"><a name="l05631"></a><span class="lineno"> 5631</span>&#160; stbi__skip(s, 6 );</div>
-<div class="line"><a name="l05632"></a><span class="lineno"> 5632</span>&#160;</div>
-<div class="line"><a name="l05633"></a><span class="lineno"> 5633</span>&#160; <span class="comment">// Read the number of channels (R, G, B, A, etc).</span></div>
-<div class="line"><a name="l05634"></a><span class="lineno"> 5634</span>&#160; channelCount = stbi__get16be(s);</div>
-<div class="line"><a name="l05635"></a><span class="lineno"> 5635</span>&#160; <span class="keywordflow">if</span> (channelCount &lt; 0 || channelCount &gt; 16)</div>
-<div class="line"><a name="l05636"></a><span class="lineno"> 5636</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong channel count&quot;</span>, <span class="stringliteral">&quot;Unsupported number of channels in PSD image&quot;</span>);</div>
-<div class="line"><a name="l05637"></a><span class="lineno"> 5637</span>&#160;</div>
-<div class="line"><a name="l05638"></a><span class="lineno"> 5638</span>&#160; <span class="comment">// Read the rows and columns of the image.</span></div>
-<div class="line"><a name="l05639"></a><span class="lineno"> 5639</span>&#160; h = stbi__get32be(s);</div>
-<div class="line"><a name="l05640"></a><span class="lineno"> 5640</span>&#160; w = stbi__get32be(s);</div>
-<div class="line"><a name="l05641"></a><span class="lineno"> 5641</span>&#160;</div>
-<div class="line"><a name="l05642"></a><span class="lineno"> 5642</span>&#160; <span class="comment">// Make sure the depth is 8 bits.</span></div>
-<div class="line"><a name="l05643"></a><span class="lineno"> 5643</span>&#160; bitdepth = stbi__get16be(s);</div>
-<div class="line"><a name="l05644"></a><span class="lineno"> 5644</span>&#160; <span class="keywordflow">if</span> (bitdepth != 8 &amp;&amp; bitdepth != 16)</div>
-<div class="line"><a name="l05645"></a><span class="lineno"> 5645</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unsupported bit depth&quot;</span>, <span class="stringliteral">&quot;PSD bit depth is not 8 or 16 bit&quot;</span>);</div>
-<div class="line"><a name="l05646"></a><span class="lineno"> 5646</span>&#160;</div>
-<div class="line"><a name="l05647"></a><span class="lineno"> 5647</span>&#160; <span class="comment">// Make sure the color mode is RGB.</span></div>
-<div class="line"><a name="l05648"></a><span class="lineno"> 5648</span>&#160; <span class="comment">// Valid options are:</span></div>
-<div class="line"><a name="l05649"></a><span class="lineno"> 5649</span>&#160; <span class="comment">// 0: Bitmap</span></div>
-<div class="line"><a name="l05650"></a><span class="lineno"> 5650</span>&#160; <span class="comment">// 1: Grayscale</span></div>
-<div class="line"><a name="l05651"></a><span class="lineno"> 5651</span>&#160; <span class="comment">// 2: Indexed color</span></div>
-<div class="line"><a name="l05652"></a><span class="lineno"> 5652</span>&#160; <span class="comment">// 3: RGB color</span></div>
-<div class="line"><a name="l05653"></a><span class="lineno"> 5653</span>&#160; <span class="comment">// 4: CMYK color</span></div>
-<div class="line"><a name="l05654"></a><span class="lineno"> 5654</span>&#160; <span class="comment">// 7: Multichannel</span></div>
-<div class="line"><a name="l05655"></a><span class="lineno"> 5655</span>&#160; <span class="comment">// 8: Duotone</span></div>
-<div class="line"><a name="l05656"></a><span class="lineno"> 5656</span>&#160; <span class="comment">// 9: Lab color</span></div>
-<div class="line"><a name="l05657"></a><span class="lineno"> 5657</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 3)</div>
-<div class="line"><a name="l05658"></a><span class="lineno"> 5658</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong color format&quot;</span>, <span class="stringliteral">&quot;PSD is not in RGB color format&quot;</span>);</div>
-<div class="line"><a name="l05659"></a><span class="lineno"> 5659</span>&#160;</div>
-<div class="line"><a name="l05660"></a><span class="lineno"> 5660</span>&#160; <span class="comment">// Skip the Mode Data. (It&#39;s the palette for indexed color; other info for other modes.)</span></div>
-<div class="line"><a name="l05661"></a><span class="lineno"> 5661</span>&#160; stbi__skip(s,stbi__get32be(s) );</div>
-<div class="line"><a name="l05662"></a><span class="lineno"> 5662</span>&#160;</div>
-<div class="line"><a name="l05663"></a><span class="lineno"> 5663</span>&#160; <span class="comment">// Skip the image resources. (resolution, pen tool paths, etc)</span></div>
-<div class="line"><a name="l05664"></a><span class="lineno"> 5664</span>&#160; stbi__skip(s, stbi__get32be(s) );</div>
-<div class="line"><a name="l05665"></a><span class="lineno"> 5665</span>&#160;</div>
-<div class="line"><a name="l05666"></a><span class="lineno"> 5666</span>&#160; <span class="comment">// Skip the reserved data.</span></div>
-<div class="line"><a name="l05667"></a><span class="lineno"> 5667</span>&#160; stbi__skip(s, stbi__get32be(s) );</div>
-<div class="line"><a name="l05668"></a><span class="lineno"> 5668</span>&#160;</div>
-<div class="line"><a name="l05669"></a><span class="lineno"> 5669</span>&#160; <span class="comment">// Find out if the data is compressed.</span></div>
-<div class="line"><a name="l05670"></a><span class="lineno"> 5670</span>&#160; <span class="comment">// Known values:</span></div>
-<div class="line"><a name="l05671"></a><span class="lineno"> 5671</span>&#160; <span class="comment">// 0: no compression</span></div>
-<div class="line"><a name="l05672"></a><span class="lineno"> 5672</span>&#160; <span class="comment">// 1: RLE compressed</span></div>
-<div class="line"><a name="l05673"></a><span class="lineno"> 5673</span>&#160; compression = stbi__get16be(s);</div>
-<div class="line"><a name="l05674"></a><span class="lineno"> 5674</span>&#160; <span class="keywordflow">if</span> (compression &gt; 1)</div>
-<div class="line"><a name="l05675"></a><span class="lineno"> 5675</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad compression&quot;</span>, <span class="stringliteral">&quot;PSD has an unknown compression format&quot;</span>);</div>
-<div class="line"><a name="l05676"></a><span class="lineno"> 5676</span>&#160;</div>
-<div class="line"><a name="l05677"></a><span class="lineno"> 5677</span>&#160; <span class="comment">// Check size</span></div>
-<div class="line"><a name="l05678"></a><span class="lineno"> 5678</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(4, w, h, 0))</div>
-<div class="line"><a name="l05679"></a><span class="lineno"> 5679</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt PSD&quot;</span>);</div>
-<div class="line"><a name="l05680"></a><span class="lineno"> 5680</span>&#160;</div>
-<div class="line"><a name="l05681"></a><span class="lineno"> 5681</span>&#160; <span class="comment">// Create the destination image.</span></div>
-<div class="line"><a name="l05682"></a><span class="lineno"> 5682</span>&#160;</div>
-<div class="line"><a name="l05683"></a><span class="lineno"> 5683</span>&#160; <span class="keywordflow">if</span> (!compression &amp;&amp; bitdepth == 16 &amp;&amp; bpc == 16) {</div>
-<div class="line"><a name="l05684"></a><span class="lineno"> 5684</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(8, w, h, 0);</div>
-<div class="line"><a name="l05685"></a><span class="lineno"> 5685</span>&#160; ri-&gt;bits_per_channel = 16;</div>
-<div class="line"><a name="l05686"></a><span class="lineno"> 5686</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05687"></a><span class="lineno"> 5687</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc(4 * w*h);</div>
-<div class="line"><a name="l05688"></a><span class="lineno"> 5688</span>&#160;</div>
-<div class="line"><a name="l05689"></a><span class="lineno"> 5689</span>&#160; <span class="keywordflow">if</span> (!out) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l05690"></a><span class="lineno"> 5690</span>&#160; pixelCount = w*h;</div>
-<div class="line"><a name="l05691"></a><span class="lineno"> 5691</span>&#160;</div>
-<div class="line"><a name="l05692"></a><span class="lineno"> 5692</span>&#160; <span class="comment">// Initialize the data to zero.</span></div>
-<div class="line"><a name="l05693"></a><span class="lineno"> 5693</span>&#160; <span class="comment">//memset( out, 0, pixelCount * 4 );</span></div>
-<div class="line"><a name="l05694"></a><span class="lineno"> 5694</span>&#160;</div>
-<div class="line"><a name="l05695"></a><span class="lineno"> 5695</span>&#160; <span class="comment">// Finally, the image data.</span></div>
-<div class="line"><a name="l05696"></a><span class="lineno"> 5696</span>&#160; <span class="keywordflow">if</span> (compression) {</div>
-<div class="line"><a name="l05697"></a><span class="lineno"> 5697</span>&#160; <span class="comment">// RLE as used by .PSD and .TIFF</span></div>
-<div class="line"><a name="l05698"></a><span class="lineno"> 5698</span>&#160; <span class="comment">// Loop until you get the number of unpacked bytes you are expecting:</span></div>
-<div class="line"><a name="l05699"></a><span class="lineno"> 5699</span>&#160; <span class="comment">// Read the next source byte into n.</span></div>
-<div class="line"><a name="l05700"></a><span class="lineno"> 5700</span>&#160; <span class="comment">// If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.</span></div>
-<div class="line"><a name="l05701"></a><span class="lineno"> 5701</span>&#160; <span class="comment">// Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.</span></div>
-<div class="line"><a name="l05702"></a><span class="lineno"> 5702</span>&#160; <span class="comment">// Else if n is 128, noop.</span></div>
-<div class="line"><a name="l05703"></a><span class="lineno"> 5703</span>&#160; <span class="comment">// Endloop</span></div>
-<div class="line"><a name="l05704"></a><span class="lineno"> 5704</span>&#160;</div>
-<div class="line"><a name="l05705"></a><span class="lineno"> 5705</span>&#160; <span class="comment">// The RLE-compressed data is preceeded by a 2-byte data count for each row in the data,</span></div>
-<div class="line"><a name="l05706"></a><span class="lineno"> 5706</span>&#160; <span class="comment">// which we&#39;re going to just skip.</span></div>
-<div class="line"><a name="l05707"></a><span class="lineno"> 5707</span>&#160; stbi__skip(s, h * channelCount * 2 );</div>
+<div class="line"><a name="l05554"></a><span class="lineno"> 5554</span>&#160; <span class="keywordflow">case</span> STBI__PNG_TYPE(<span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;E&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;D&#39;</span>): {</div>
+<div class="line"><a name="l05555"></a><span class="lineno"> 5555</span>&#160; stbi__uint32 raw_len, bpl;</div>
+<div class="line"><a name="l05556"></a><span class="lineno"> 5556</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l05557"></a><span class="lineno"> 5557</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05558"></a><span class="lineno"> 5558</span>&#160; <span class="keywordflow">if</span> (scan != STBI__SCAN_load)</div>
+<div class="line"><a name="l05559"></a><span class="lineno"> 5559</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05560"></a><span class="lineno"> 5560</span>&#160; <span class="keywordflow">if</span> (z-&gt;idata == NULL)</div>
+<div class="line"><a name="l05561"></a><span class="lineno"> 5561</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;no IDAT&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05562"></a><span class="lineno"> 5562</span>&#160; <span class="comment">// initial guess for decoded data size to avoid unnecessary reallocs</span></div>
+<div class="line"><a name="l05563"></a><span class="lineno"> 5563</span>&#160; bpl =</div>
+<div class="line"><a name="l05564"></a><span class="lineno"> 5564</span>&#160; (s-&gt;img_x * z-&gt;depth + 7) / 8; <span class="comment">// bytes per line, per component</span></div>
+<div class="line"><a name="l05565"></a><span class="lineno"> 5565</span>&#160; raw_len = bpl * s-&gt;img_y * s-&gt;img_n <span class="comment">/* pixels */</span> +</div>
+<div class="line"><a name="l05566"></a><span class="lineno"> 5566</span>&#160; s-&gt;img_y <span class="comment">/* filter mode per row */</span>;</div>
+<div class="line"><a name="l05567"></a><span class="lineno"> 5567</span>&#160; z-&gt;expanded =</div>
+<div class="line"><a name="l05568"></a><span class="lineno"> 5568</span>&#160; (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)<a class="code" href="stb__image_8h.html#a038b0e741859a482b8b9d60167e54d27">stbi_zlib_decode_malloc_guesssize_headerflag</a>(</div>
+<div class="line"><a name="l05569"></a><span class="lineno"> 5569</span>&#160; (<span class="keywordtype">char</span> *)z-&gt;idata, ioff, raw_len, (<span class="keywordtype">int</span> *)&amp;raw_len,</div>
+<div class="line"><a name="l05570"></a><span class="lineno"> 5570</span>&#160; !is_iphone);</div>
+<div class="line"><a name="l05571"></a><span class="lineno"> 5571</span>&#160; <span class="keywordflow">if</span> (z-&gt;expanded == NULL)</div>
+<div class="line"><a name="l05572"></a><span class="lineno"> 5572</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// zlib should set error</span></div>
+<div class="line"><a name="l05573"></a><span class="lineno"> 5573</span>&#160; STBI_FREE(z-&gt;idata);</div>
+<div class="line"><a name="l05574"></a><span class="lineno"> 5574</span>&#160; z-&gt;idata = NULL;</div>
+<div class="line"><a name="l05575"></a><span class="lineno"> 5575</span>&#160; <span class="keywordflow">if</span> ((req_comp == s-&gt;img_n + 1 &amp;&amp; req_comp != 3 &amp;&amp; !pal_img_n) ||</div>
+<div class="line"><a name="l05576"></a><span class="lineno"> 5576</span>&#160; has_trans)</div>
+<div class="line"><a name="l05577"></a><span class="lineno"> 5577</span>&#160; s-&gt;img_out_n = s-&gt;img_n + 1;</div>
+<div class="line"><a name="l05578"></a><span class="lineno"> 5578</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05579"></a><span class="lineno"> 5579</span>&#160; s-&gt;img_out_n = s-&gt;img_n;</div>
+<div class="line"><a name="l05580"></a><span class="lineno"> 5580</span>&#160; <span class="keywordflow">if</span> (!stbi__create_png_image(z, z-&gt;expanded, raw_len, s-&gt;img_out_n,</div>
+<div class="line"><a name="l05581"></a><span class="lineno"> 5581</span>&#160; z-&gt;depth, color, interlace))</div>
+<div class="line"><a name="l05582"></a><span class="lineno"> 5582</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05583"></a><span class="lineno"> 5583</span>&#160; <span class="keywordflow">if</span> (has_trans) {</div>
+<div class="line"><a name="l05584"></a><span class="lineno"> 5584</span>&#160; <span class="keywordflow">if</span> (z-&gt;depth == 16) {</div>
+<div class="line"><a name="l05585"></a><span class="lineno"> 5585</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_transparency16(z, tc16, s-&gt;img_out_n))</div>
+<div class="line"><a name="l05586"></a><span class="lineno"> 5586</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05587"></a><span class="lineno"> 5587</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05588"></a><span class="lineno"> 5588</span>&#160; <span class="keywordflow">if</span> (!stbi__compute_transparency(z, tc, s-&gt;img_out_n))</div>
+<div class="line"><a name="l05589"></a><span class="lineno"> 5589</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05590"></a><span class="lineno"> 5590</span>&#160; }</div>
+<div class="line"><a name="l05591"></a><span class="lineno"> 5591</span>&#160; }</div>
+<div class="line"><a name="l05592"></a><span class="lineno"> 5592</span>&#160; <span class="keywordflow">if</span> (is_iphone &amp;&amp; stbi__de_iphone_flag &amp;&amp; s-&gt;img_out_n &gt; 2)</div>
+<div class="line"><a name="l05593"></a><span class="lineno"> 5593</span>&#160; stbi__de_iphone(z);</div>
+<div class="line"><a name="l05594"></a><span class="lineno"> 5594</span>&#160; <span class="keywordflow">if</span> (pal_img_n) {</div>
+<div class="line"><a name="l05595"></a><span class="lineno"> 5595</span>&#160; <span class="comment">// pal_img_n == 3 or 4</span></div>
+<div class="line"><a name="l05596"></a><span class="lineno"> 5596</span>&#160; s-&gt;img_n = pal_img_n; <span class="comment">// record the actual colors we had</span></div>
+<div class="line"><a name="l05597"></a><span class="lineno"> 5597</span>&#160; s-&gt;img_out_n = pal_img_n;</div>
+<div class="line"><a name="l05598"></a><span class="lineno"> 5598</span>&#160; <span class="keywordflow">if</span> (req_comp &gt;= 3)</div>
+<div class="line"><a name="l05599"></a><span class="lineno"> 5599</span>&#160; s-&gt;img_out_n = req_comp;</div>
+<div class="line"><a name="l05600"></a><span class="lineno"> 5600</span>&#160; <span class="keywordflow">if</span> (!stbi__expand_png_palette(z, palette, pal_len,</div>
+<div class="line"><a name="l05601"></a><span class="lineno"> 5601</span>&#160; s-&gt;img_out_n))</div>
+<div class="line"><a name="l05602"></a><span class="lineno"> 5602</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05603"></a><span class="lineno"> 5603</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (has_trans) {</div>
+<div class="line"><a name="l05604"></a><span class="lineno"> 5604</span>&#160; <span class="comment">// non-paletted image with tRNS -&gt; source image has (constant)</span></div>
+<div class="line"><a name="l05605"></a><span class="lineno"> 5605</span>&#160; <span class="comment">// alpha</span></div>
+<div class="line"><a name="l05606"></a><span class="lineno"> 5606</span>&#160; ++s-&gt;img_n;</div>
+<div class="line"><a name="l05607"></a><span class="lineno"> 5607</span>&#160; }</div>
+<div class="line"><a name="l05608"></a><span class="lineno"> 5608</span>&#160; STBI_FREE(z-&gt;expanded);</div>
+<div class="line"><a name="l05609"></a><span class="lineno"> 5609</span>&#160; z-&gt;expanded = NULL;</div>
+<div class="line"><a name="l05610"></a><span class="lineno"> 5610</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05611"></a><span class="lineno"> 5611</span>&#160; }</div>
+<div class="line"><a name="l05612"></a><span class="lineno"> 5612</span>&#160;</div>
+<div class="line"><a name="l05613"></a><span class="lineno"> 5613</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l05614"></a><span class="lineno"> 5614</span>&#160; <span class="comment">// if critical, fail</span></div>
+<div class="line"><a name="l05615"></a><span class="lineno"> 5615</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l05616"></a><span class="lineno"> 5616</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;first not IHDR&quot;</span>, <span class="stringliteral">&quot;Corrupt PNG&quot;</span>);</div>
+<div class="line"><a name="l05617"></a><span class="lineno"> 5617</span>&#160; <span class="keywordflow">if</span> ((c.type &amp; (1 &lt;&lt; 29)) == 0) {</div>
+<div class="line"><a name="l05618"></a><span class="lineno"> 5618</span>&#160;<span class="preprocessor">#ifndef STBI_NO_FAILURE_STRINGS</span></div>
+<div class="line"><a name="l05619"></a><span class="lineno"> 5619</span>&#160;<span class="preprocessor"></span> <span class="comment">// not threadsafe</span></div>
+<div class="line"><a name="l05620"></a><span class="lineno"> 5620</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span> invalid_chunk[] = <span class="stringliteral">&quot;XXXX PNG chunk not known&quot;</span>;</div>
+<div class="line"><a name="l05621"></a><span class="lineno"> 5621</span>&#160; invalid_chunk[0] = STBI__BYTECAST(c.type &gt;&gt; 24);</div>
+<div class="line"><a name="l05622"></a><span class="lineno"> 5622</span>&#160; invalid_chunk[1] = STBI__BYTECAST(c.type &gt;&gt; 16);</div>
+<div class="line"><a name="l05623"></a><span class="lineno"> 5623</span>&#160; invalid_chunk[2] = STBI__BYTECAST(c.type &gt;&gt; 8);</div>
+<div class="line"><a name="l05624"></a><span class="lineno"> 5624</span>&#160; invalid_chunk[3] = STBI__BYTECAST(c.type &gt;&gt; 0);</div>
+<div class="line"><a name="l05625"></a><span class="lineno"> 5625</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05626"></a><span class="lineno"> 5626</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> stbi__err(invalid_chunk,</div>
+<div class="line"><a name="l05627"></a><span class="lineno"> 5627</span>&#160; <span class="stringliteral">&quot;PNG not supported: unknown PNG chunk type&quot;</span>);</div>
+<div class="line"><a name="l05628"></a><span class="lineno"> 5628</span>&#160; }</div>
+<div class="line"><a name="l05629"></a><span class="lineno"> 5629</span>&#160; stbi__skip(s, c.length);</div>
+<div class="line"><a name="l05630"></a><span class="lineno"> 5630</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05631"></a><span class="lineno"> 5631</span>&#160; }</div>
+<div class="line"><a name="l05632"></a><span class="lineno"> 5632</span>&#160; <span class="comment">// end of PNG chunk, read and skip CRC</span></div>
+<div class="line"><a name="l05633"></a><span class="lineno"> 5633</span>&#160; stbi__get32be(s);</div>
+<div class="line"><a name="l05634"></a><span class="lineno"> 5634</span>&#160; }</div>
+<div class="line"><a name="l05635"></a><span class="lineno"> 5635</span>&#160;}</div>
+<div class="line"><a name="l05636"></a><span class="lineno"> 5636</span>&#160;</div>
+<div class="line"><a name="l05637"></a><span class="lineno"> 5637</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__do_png(stbi__png *p, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *n, <span class="keywordtype">int</span> req_comp,</div>
+<div class="line"><a name="l05638"></a><span class="lineno"> 5638</span>&#160; stbi__result_info *ri)</div>
+<div class="line"><a name="l05639"></a><span class="lineno"> 5639</span>&#160;{</div>
+<div class="line"><a name="l05640"></a><span class="lineno"> 5640</span>&#160; <span class="keywordtype">void</span> *result = NULL;</div>
+<div class="line"><a name="l05641"></a><span class="lineno"> 5641</span>&#160; <span class="keywordflow">if</span> (req_comp &lt; 0 || req_comp &gt; 4)</div>
+<div class="line"><a name="l05642"></a><span class="lineno"> 5642</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad req_comp&quot;</span>, <span class="stringliteral">&quot;Internal error&quot;</span>);</div>
+<div class="line"><a name="l05643"></a><span class="lineno"> 5643</span>&#160; <span class="keywordflow">if</span> (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {</div>
+<div class="line"><a name="l05644"></a><span class="lineno"> 5644</span>&#160; <span class="keywordflow">if</span> (p-&gt;depth &lt; 8)</div>
+<div class="line"><a name="l05645"></a><span class="lineno"> 5645</span>&#160; ri-&gt;bits_per_channel = 8;</div>
+<div class="line"><a name="l05646"></a><span class="lineno"> 5646</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05647"></a><span class="lineno"> 5647</span>&#160; ri-&gt;bits_per_channel = p-&gt;depth;</div>
+<div class="line"><a name="l05648"></a><span class="lineno"> 5648</span>&#160; result = p-&gt;out;</div>
+<div class="line"><a name="l05649"></a><span class="lineno"> 5649</span>&#160; p-&gt;out = NULL;</div>
+<div class="line"><a name="l05650"></a><span class="lineno"> 5650</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != p-&gt;s-&gt;img_out_n) {</div>
+<div class="line"><a name="l05651"></a><span class="lineno"> 5651</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 8)</div>
+<div class="line"><a name="l05652"></a><span class="lineno"> 5652</span>&#160; result = stbi__convert_format((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)result,</div>
+<div class="line"><a name="l05653"></a><span class="lineno"> 5653</span>&#160; p-&gt;s-&gt;img_out_n, req_comp,</div>
+<div class="line"><a name="l05654"></a><span class="lineno"> 5654</span>&#160; p-&gt;s-&gt;img_x, p-&gt;s-&gt;img_y);</div>
+<div class="line"><a name="l05655"></a><span class="lineno"> 5655</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05656"></a><span class="lineno"> 5656</span>&#160; result = stbi__convert_format16((stbi__uint16 *)result,</div>
+<div class="line"><a name="l05657"></a><span class="lineno"> 5657</span>&#160; p-&gt;s-&gt;img_out_n, req_comp,</div>
+<div class="line"><a name="l05658"></a><span class="lineno"> 5658</span>&#160; p-&gt;s-&gt;img_x, p-&gt;s-&gt;img_y);</div>
+<div class="line"><a name="l05659"></a><span class="lineno"> 5659</span>&#160; p-&gt;s-&gt;img_out_n = req_comp;</div>
+<div class="line"><a name="l05660"></a><span class="lineno"> 5660</span>&#160; <span class="keywordflow">if</span> (result == NULL)</div>
+<div class="line"><a name="l05661"></a><span class="lineno"> 5661</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l05662"></a><span class="lineno"> 5662</span>&#160; }</div>
+<div class="line"><a name="l05663"></a><span class="lineno"> 5663</span>&#160; *x = p-&gt;s-&gt;img_x;</div>
+<div class="line"><a name="l05664"></a><span class="lineno"> 5664</span>&#160; *y = p-&gt;s-&gt;img_y;</div>
+<div class="line"><a name="l05665"></a><span class="lineno"> 5665</span>&#160; <span class="keywordflow">if</span> (n)</div>
+<div class="line"><a name="l05666"></a><span class="lineno"> 5666</span>&#160; *n = p-&gt;s-&gt;img_n;</div>
+<div class="line"><a name="l05667"></a><span class="lineno"> 5667</span>&#160; }</div>
+<div class="line"><a name="l05668"></a><span class="lineno"> 5668</span>&#160; STBI_FREE(p-&gt;out);</div>
+<div class="line"><a name="l05669"></a><span class="lineno"> 5669</span>&#160; p-&gt;out = NULL;</div>
+<div class="line"><a name="l05670"></a><span class="lineno"> 5670</span>&#160; STBI_FREE(p-&gt;expanded);</div>
+<div class="line"><a name="l05671"></a><span class="lineno"> 5671</span>&#160; p-&gt;expanded = NULL;</div>
+<div class="line"><a name="l05672"></a><span class="lineno"> 5672</span>&#160; STBI_FREE(p-&gt;idata);</div>
+<div class="line"><a name="l05673"></a><span class="lineno"> 5673</span>&#160; p-&gt;idata = NULL;</div>
+<div class="line"><a name="l05674"></a><span class="lineno"> 5674</span>&#160;</div>
+<div class="line"><a name="l05675"></a><span class="lineno"> 5675</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l05676"></a><span class="lineno"> 5676</span>&#160;}</div>
+<div class="line"><a name="l05677"></a><span class="lineno"> 5677</span>&#160;</div>
+<div class="line"><a name="l05678"></a><span class="lineno"> 5678</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__png_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l05679"></a><span class="lineno"> 5679</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l05680"></a><span class="lineno"> 5680</span>&#160;{</div>
+<div class="line"><a name="l05681"></a><span class="lineno"> 5681</span>&#160; stbi__png p;</div>
+<div class="line"><a name="l05682"></a><span class="lineno"> 5682</span>&#160; p.s = s;</div>
+<div class="line"><a name="l05683"></a><span class="lineno"> 5683</span>&#160; <span class="keywordflow">return</span> stbi__do_png(&amp;p, x, y, comp, req_comp, ri);</div>
+<div class="line"><a name="l05684"></a><span class="lineno"> 5684</span>&#160;}</div>
+<div class="line"><a name="l05685"></a><span class="lineno"> 5685</span>&#160;</div>
+<div class="line"><a name="l05686"></a><span class="lineno"> 5686</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_test(stbi__context *s)</div>
+<div class="line"><a name="l05687"></a><span class="lineno"> 5687</span>&#160;{</div>
+<div class="line"><a name="l05688"></a><span class="lineno"> 5688</span>&#160; <span class="keywordtype">int</span> r;</div>
+<div class="line"><a name="l05689"></a><span class="lineno"> 5689</span>&#160; r = stbi__check_png_header(s);</div>
+<div class="line"><a name="l05690"></a><span class="lineno"> 5690</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l05691"></a><span class="lineno"> 5691</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l05692"></a><span class="lineno"> 5692</span>&#160;}</div>
+<div class="line"><a name="l05693"></a><span class="lineno"> 5693</span>&#160;</div>
+<div class="line"><a name="l05694"></a><span class="lineno"> 5694</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info_raw(stbi__png *p, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l05695"></a><span class="lineno"> 5695</span>&#160;{</div>
+<div class="line"><a name="l05696"></a><span class="lineno"> 5696</span>&#160; <span class="keywordflow">if</span> (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {</div>
+<div class="line"><a name="l05697"></a><span class="lineno"> 5697</span>&#160; stbi__rewind(p-&gt;s);</div>
+<div class="line"><a name="l05698"></a><span class="lineno"> 5698</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05699"></a><span class="lineno"> 5699</span>&#160; }</div>
+<div class="line"><a name="l05700"></a><span class="lineno"> 5700</span>&#160; <span class="keywordflow">if</span> (x)</div>
+<div class="line"><a name="l05701"></a><span class="lineno"> 5701</span>&#160; *x = p-&gt;s-&gt;img_x;</div>
+<div class="line"><a name="l05702"></a><span class="lineno"> 5702</span>&#160; <span class="keywordflow">if</span> (y)</div>
+<div class="line"><a name="l05703"></a><span class="lineno"> 5703</span>&#160; *y = p-&gt;s-&gt;img_y;</div>
+<div class="line"><a name="l05704"></a><span class="lineno"> 5704</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l05705"></a><span class="lineno"> 5705</span>&#160; *comp = p-&gt;s-&gt;img_n;</div>
+<div class="line"><a name="l05706"></a><span class="lineno"> 5706</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l05707"></a><span class="lineno"> 5707</span>&#160;}</div>
<div class="line"><a name="l05708"></a><span class="lineno"> 5708</span>&#160;</div>
-<div class="line"><a name="l05709"></a><span class="lineno"> 5709</span>&#160; <span class="comment">// Read the RLE data by channel.</span></div>
-<div class="line"><a name="l05710"></a><span class="lineno"> 5710</span>&#160; <span class="keywordflow">for</span> (channel = 0; channel &lt; 4; channel++) {</div>
-<div class="line"><a name="l05711"></a><span class="lineno"> 5711</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
-<div class="line"><a name="l05712"></a><span class="lineno"> 5712</span>&#160;</div>
-<div class="line"><a name="l05713"></a><span class="lineno"> 5713</span>&#160; p = out+channel;</div>
-<div class="line"><a name="l05714"></a><span class="lineno"> 5714</span>&#160; <span class="keywordflow">if</span> (channel &gt;= channelCount) {</div>
-<div class="line"><a name="l05715"></a><span class="lineno"> 5715</span>&#160; <span class="comment">// Fill this channel with default data.</span></div>
-<div class="line"><a name="l05716"></a><span class="lineno"> 5716</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
-<div class="line"><a name="l05717"></a><span class="lineno"> 5717</span>&#160; *p = (channel == 3 ? 255 : 0);</div>
-<div class="line"><a name="l05718"></a><span class="lineno"> 5718</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05719"></a><span class="lineno"> 5719</span>&#160; <span class="comment">// Read the RLE data.</span></div>
-<div class="line"><a name="l05720"></a><span class="lineno"> 5720</span>&#160; <span class="keywordflow">if</span> (!stbi__psd_decode_rle(s, p, pixelCount)) {</div>
-<div class="line"><a name="l05721"></a><span class="lineno"> 5721</span>&#160; STBI_FREE(out);</div>
-<div class="line"><a name="l05722"></a><span class="lineno"> 5722</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;corrupt&quot;</span>, <span class="stringliteral">&quot;bad RLE data&quot;</span>);</div>
-<div class="line"><a name="l05723"></a><span class="lineno"> 5723</span>&#160; }</div>
-<div class="line"><a name="l05724"></a><span class="lineno"> 5724</span>&#160; }</div>
-<div class="line"><a name="l05725"></a><span class="lineno"> 5725</span>&#160; }</div>
-<div class="line"><a name="l05726"></a><span class="lineno"> 5726</span>&#160;</div>
-<div class="line"><a name="l05727"></a><span class="lineno"> 5727</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05728"></a><span class="lineno"> 5728</span>&#160; <span class="comment">// We&#39;re at the raw image data. It&#39;s each channel in order (Red, Green, Blue, Alpha, ...)</span></div>
-<div class="line"><a name="l05729"></a><span class="lineno"> 5729</span>&#160; <span class="comment">// where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.</span></div>
-<div class="line"><a name="l05730"></a><span class="lineno"> 5730</span>&#160;</div>
-<div class="line"><a name="l05731"></a><span class="lineno"> 5731</span>&#160; <span class="comment">// Read the data by channel.</span></div>
-<div class="line"><a name="l05732"></a><span class="lineno"> 5732</span>&#160; <span class="keywordflow">for</span> (channel = 0; channel &lt; 4; channel++) {</div>
-<div class="line"><a name="l05733"></a><span class="lineno"> 5733</span>&#160; <span class="keywordflow">if</span> (channel &gt;= channelCount) {</div>
-<div class="line"><a name="l05734"></a><span class="lineno"> 5734</span>&#160; <span class="comment">// Fill this channel with default data.</span></div>
-<div class="line"><a name="l05735"></a><span class="lineno"> 5735</span>&#160; <span class="keywordflow">if</span> (bitdepth == 16 &amp;&amp; bpc == 16) {</div>
-<div class="line"><a name="l05736"></a><span class="lineno"> 5736</span>&#160; stbi__uint16 *q = ((stbi__uint16 *) out) + channel;</div>
-<div class="line"><a name="l05737"></a><span class="lineno"> 5737</span>&#160; stbi__uint16 val = channel == 3 ? 65535 : 0;</div>
-<div class="line"><a name="l05738"></a><span class="lineno"> 5738</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, q += 4)</div>
-<div class="line"><a name="l05739"></a><span class="lineno"> 5739</span>&#160; *q = val;</div>
-<div class="line"><a name="l05740"></a><span class="lineno"> 5740</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05741"></a><span class="lineno"> 5741</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = out+channel;</div>
-<div class="line"><a name="l05742"></a><span class="lineno"> 5742</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> val = channel == 3 ? 255 : 0;</div>
-<div class="line"><a name="l05743"></a><span class="lineno"> 5743</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
-<div class="line"><a name="l05744"></a><span class="lineno"> 5744</span>&#160; *p = val;</div>
-<div class="line"><a name="l05745"></a><span class="lineno"> 5745</span>&#160; }</div>
-<div class="line"><a name="l05746"></a><span class="lineno"> 5746</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05747"></a><span class="lineno"> 5747</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16) { <span class="comment">// output bpc</span></div>
-<div class="line"><a name="l05748"></a><span class="lineno"> 5748</span>&#160; stbi__uint16 *q = ((stbi__uint16 *) out) + channel;</div>
-<div class="line"><a name="l05749"></a><span class="lineno"> 5749</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, q += 4)</div>
-<div class="line"><a name="l05750"></a><span class="lineno"> 5750</span>&#160; *q = (stbi__uint16) stbi__get16be(s);</div>
-<div class="line"><a name="l05751"></a><span class="lineno"> 5751</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05752"></a><span class="lineno"> 5752</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = out+channel;</div>
-<div class="line"><a name="l05753"></a><span class="lineno"> 5753</span>&#160; <span class="keywordflow">if</span> (bitdepth == 16) { <span class="comment">// input bpc</span></div>
-<div class="line"><a name="l05754"></a><span class="lineno"> 5754</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
-<div class="line"><a name="l05755"></a><span class="lineno"> 5755</span>&#160; *p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) (stbi__get16be(s) &gt;&gt; 8);</div>
-<div class="line"><a name="l05756"></a><span class="lineno"> 5756</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05757"></a><span class="lineno"> 5757</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
-<div class="line"><a name="l05758"></a><span class="lineno"> 5758</span>&#160; *p = stbi__get8(s);</div>
-<div class="line"><a name="l05759"></a><span class="lineno"> 5759</span>&#160; }</div>
-<div class="line"><a name="l05760"></a><span class="lineno"> 5760</span>&#160; }</div>
-<div class="line"><a name="l05761"></a><span class="lineno"> 5761</span>&#160; }</div>
-<div class="line"><a name="l05762"></a><span class="lineno"> 5762</span>&#160; }</div>
-<div class="line"><a name="l05763"></a><span class="lineno"> 5763</span>&#160; }</div>
-<div class="line"><a name="l05764"></a><span class="lineno"> 5764</span>&#160;</div>
-<div class="line"><a name="l05765"></a><span class="lineno"> 5765</span>&#160; <span class="comment">// remove weird white matte from PSD</span></div>
-<div class="line"><a name="l05766"></a><span class="lineno"> 5766</span>&#160; <span class="keywordflow">if</span> (channelCount &gt;= 4) {</div>
-<div class="line"><a name="l05767"></a><span class="lineno"> 5767</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16) {</div>
-<div class="line"><a name="l05768"></a><span class="lineno"> 5768</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w*h; ++i) {</div>
-<div class="line"><a name="l05769"></a><span class="lineno"> 5769</span>&#160; stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i;</div>
-<div class="line"><a name="l05770"></a><span class="lineno"> 5770</span>&#160; <span class="keywordflow">if</span> (pixel[3] != 0 &amp;&amp; pixel[3] != 65535) {</div>
-<div class="line"><a name="l05771"></a><span class="lineno"> 5771</span>&#160; <span class="keywordtype">float</span> a = pixel[3] / 65535.0f;</div>
-<div class="line"><a name="l05772"></a><span class="lineno"> 5772</span>&#160; <span class="keywordtype">float</span> ra = 1.0f / a;</div>
-<div class="line"><a name="l05773"></a><span class="lineno"> 5773</span>&#160; <span class="keywordtype">float</span> inv_a = 65535.0f * (1 - ra);</div>
-<div class="line"><a name="l05774"></a><span class="lineno"> 5774</span>&#160; pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a);</div>
-<div class="line"><a name="l05775"></a><span class="lineno"> 5775</span>&#160; pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a);</div>
-<div class="line"><a name="l05776"></a><span class="lineno"> 5776</span>&#160; pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a);</div>
-<div class="line"><a name="l05777"></a><span class="lineno"> 5777</span>&#160; }</div>
-<div class="line"><a name="l05778"></a><span class="lineno"> 5778</span>&#160; }</div>
-<div class="line"><a name="l05779"></a><span class="lineno"> 5779</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l05780"></a><span class="lineno"> 5780</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; w*h; ++i) {</div>
-<div class="line"><a name="l05781"></a><span class="lineno"> 5781</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pixel = out + 4*i;</div>
-<div class="line"><a name="l05782"></a><span class="lineno"> 5782</span>&#160; <span class="keywordflow">if</span> (pixel[3] != 0 &amp;&amp; pixel[3] != 255) {</div>
-<div class="line"><a name="l05783"></a><span class="lineno"> 5783</span>&#160; <span class="keywordtype">float</span> a = pixel[3] / 255.0f;</div>
-<div class="line"><a name="l05784"></a><span class="lineno"> 5784</span>&#160; <span class="keywordtype">float</span> ra = 1.0f / a;</div>
-<div class="line"><a name="l05785"></a><span class="lineno"> 5785</span>&#160; <span class="keywordtype">float</span> inv_a = 255.0f * (1 - ra);</div>
-<div class="line"><a name="l05786"></a><span class="lineno"> 5786</span>&#160; pixel[0] = (<span class="keywordtype">unsigned</span> char) (pixel[0]*ra + inv_a);</div>
-<div class="line"><a name="l05787"></a><span class="lineno"> 5787</span>&#160; pixel[1] = (<span class="keywordtype">unsigned</span> char) (pixel[1]*ra + inv_a);</div>
-<div class="line"><a name="l05788"></a><span class="lineno"> 5788</span>&#160; pixel[2] = (<span class="keywordtype">unsigned</span> char) (pixel[2]*ra + inv_a);</div>
-<div class="line"><a name="l05789"></a><span class="lineno"> 5789</span>&#160; }</div>
-<div class="line"><a name="l05790"></a><span class="lineno"> 5790</span>&#160; }</div>
-<div class="line"><a name="l05791"></a><span class="lineno"> 5791</span>&#160; }</div>
-<div class="line"><a name="l05792"></a><span class="lineno"> 5792</span>&#160; }</div>
-<div class="line"><a name="l05793"></a><span class="lineno"> 5793</span>&#160;</div>
-<div class="line"><a name="l05794"></a><span class="lineno"> 5794</span>&#160; <span class="comment">// convert to desired output format</span></div>
-<div class="line"><a name="l05795"></a><span class="lineno"> 5795</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != 4) {</div>
-<div class="line"><a name="l05796"></a><span class="lineno"> 5796</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16)</div>
-<div class="line"><a name="l05797"></a><span class="lineno"> 5797</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h);</div>
-<div class="line"><a name="l05798"></a><span class="lineno"> 5798</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05799"></a><span class="lineno"> 5799</span>&#160; out = stbi__convert_format(out, 4, req_comp, w, h);</div>
-<div class="line"><a name="l05800"></a><span class="lineno"> 5800</span>&#160; <span class="keywordflow">if</span> (out == NULL) <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
-<div class="line"><a name="l05801"></a><span class="lineno"> 5801</span>&#160; }</div>
-<div class="line"><a name="l05802"></a><span class="lineno"> 5802</span>&#160;</div>
-<div class="line"><a name="l05803"></a><span class="lineno"> 5803</span>&#160; <span class="keywordflow">if</span> (comp) *comp = 4;</div>
-<div class="line"><a name="l05804"></a><span class="lineno"> 5804</span>&#160; *y = h;</div>
-<div class="line"><a name="l05805"></a><span class="lineno"> 5805</span>&#160; *x = w;</div>
-<div class="line"><a name="l05806"></a><span class="lineno"> 5806</span>&#160;</div>
-<div class="line"><a name="l05807"></a><span class="lineno"> 5807</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l05808"></a><span class="lineno"> 5808</span>&#160;}</div>
-<div class="line"><a name="l05809"></a><span class="lineno"> 5809</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05810"></a><span class="lineno"> 5810</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l05811"></a><span class="lineno"> 5811</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
-<div class="line"><a name="l05812"></a><span class="lineno"> 5812</span>&#160;<span class="comment">// Softimage PIC loader</span></div>
-<div class="line"><a name="l05813"></a><span class="lineno"> 5813</span>&#160;<span class="comment">// by Tom Seddon</span></div>
-<div class="line"><a name="l05814"></a><span class="lineno"> 5814</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l05815"></a><span class="lineno"> 5815</span>&#160;<span class="comment">// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format</span></div>
-<div class="line"><a name="l05816"></a><span class="lineno"> 5816</span>&#160;<span class="comment">// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/</span></div>
-<div class="line"><a name="l05817"></a><span class="lineno"> 5817</span>&#160;</div>
-<div class="line"><a name="l05818"></a><span class="lineno"> 5818</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
-<div class="line"><a name="l05819"></a><span class="lineno"> 5819</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_is4(stbi__context *s,<span class="keyword">const</span> <span class="keywordtype">char</span> *str)</div>
-<div class="line"><a name="l05820"></a><span class="lineno"> 5820</span>&#160;{</div>
-<div class="line"><a name="l05821"></a><span class="lineno"> 5821</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l05822"></a><span class="lineno"> 5822</span>&#160; <span class="keywordflow">for</span> (i=0; i&lt;4; ++i)</div>
-<div class="line"><a name="l05823"></a><span class="lineno"> 5823</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)str[i])</div>
-<div class="line"><a name="l05824"></a><span class="lineno"> 5824</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05825"></a><span class="lineno"> 5825</span>&#160;</div>
-<div class="line"><a name="l05826"></a><span class="lineno"> 5826</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l05827"></a><span class="lineno"> 5827</span>&#160;}</div>
-<div class="line"><a name="l05828"></a><span class="lineno"> 5828</span>&#160;</div>
-<div class="line"><a name="l05829"></a><span class="lineno"> 5829</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test_core(stbi__context *s)</div>
-<div class="line"><a name="l05830"></a><span class="lineno"> 5830</span>&#160;{</div>
-<div class="line"><a name="l05831"></a><span class="lineno"> 5831</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l05832"></a><span class="lineno"> 5832</span>&#160;</div>
-<div class="line"><a name="l05833"></a><span class="lineno"> 5833</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s,<span class="stringliteral">&quot;\x53\x80\xF6\x34&quot;</span>))</div>
-<div class="line"><a name="l05834"></a><span class="lineno"> 5834</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05835"></a><span class="lineno"> 5835</span>&#160;</div>
-<div class="line"><a name="l05836"></a><span class="lineno"> 5836</span>&#160; <span class="keywordflow">for</span>(i=0;i&lt;84;++i)</div>
-<div class="line"><a name="l05837"></a><span class="lineno"> 5837</span>&#160; stbi__get8(s);</div>
-<div class="line"><a name="l05838"></a><span class="lineno"> 5838</span>&#160;</div>
-<div class="line"><a name="l05839"></a><span class="lineno"> 5839</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s,<span class="stringliteral">&quot;PICT&quot;</span>))</div>
-<div class="line"><a name="l05840"></a><span class="lineno"> 5840</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05841"></a><span class="lineno"> 5841</span>&#160;</div>
-<div class="line"><a name="l05842"></a><span class="lineno"> 5842</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l05843"></a><span class="lineno"> 5843</span>&#160;}</div>
-<div class="line"><a name="l05844"></a><span class="lineno"> 5844</span>&#160;</div>
-<div class="line"><a name="l05845"></a><span class="lineno"> 5845</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l05846"></a><span class="lineno"> 5846</span>&#160;{</div>
-<div class="line"><a name="l05847"></a><span class="lineno"> 5847</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size,type,channel;</div>
-<div class="line"><a name="l05848"></a><span class="lineno"> 5848</span>&#160;} stbi__pic_packet;</div>
-<div class="line"><a name="l05849"></a><span class="lineno"> 5849</span>&#160;</div>
-<div class="line"><a name="l05850"></a><span class="lineno"> 5850</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__readval(stbi__context *s, <span class="keywordtype">int</span> channel, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest)</div>
-<div class="line"><a name="l05851"></a><span class="lineno"> 5851</span>&#160;{</div>
-<div class="line"><a name="l05852"></a><span class="lineno"> 5852</span>&#160; <span class="keywordtype">int</span> mask=0x80, i;</div>
-<div class="line"><a name="l05853"></a><span class="lineno"> 5853</span>&#160;</div>
-<div class="line"><a name="l05854"></a><span class="lineno"> 5854</span>&#160; <span class="keywordflow">for</span> (i=0; i&lt;4; ++i, mask&gt;&gt;=1) {</div>
-<div class="line"><a name="l05855"></a><span class="lineno"> 5855</span>&#160; <span class="keywordflow">if</span> (channel &amp; mask) {</div>
-<div class="line"><a name="l05856"></a><span class="lineno"> 5856</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;PIC file too short&quot;</span>);</div>
-<div class="line"><a name="l05857"></a><span class="lineno"> 5857</span>&#160; dest[i]=stbi__get8(s);</div>
-<div class="line"><a name="l05858"></a><span class="lineno"> 5858</span>&#160; }</div>
-<div class="line"><a name="l05859"></a><span class="lineno"> 5859</span>&#160; }</div>
-<div class="line"><a name="l05860"></a><span class="lineno"> 5860</span>&#160;</div>
-<div class="line"><a name="l05861"></a><span class="lineno"> 5861</span>&#160; <span class="keywordflow">return</span> dest;</div>
-<div class="line"><a name="l05862"></a><span class="lineno"> 5862</span>&#160;}</div>
-<div class="line"><a name="l05863"></a><span class="lineno"> 5863</span>&#160;</div>
-<div class="line"><a name="l05864"></a><span class="lineno"> 5864</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__copyval(<span class="keywordtype">int</span> channel,<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest,<span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *src)</div>
-<div class="line"><a name="l05865"></a><span class="lineno"> 5865</span>&#160;{</div>
-<div class="line"><a name="l05866"></a><span class="lineno"> 5866</span>&#160; <span class="keywordtype">int</span> mask=0x80,i;</div>
-<div class="line"><a name="l05867"></a><span class="lineno"> 5867</span>&#160;</div>
-<div class="line"><a name="l05868"></a><span class="lineno"> 5868</span>&#160; <span class="keywordflow">for</span> (i=0;i&lt;4; ++i, mask&gt;&gt;=1)</div>
-<div class="line"><a name="l05869"></a><span class="lineno"> 5869</span>&#160; <span class="keywordflow">if</span> (channel&amp;mask)</div>
-<div class="line"><a name="l05870"></a><span class="lineno"> 5870</span>&#160; dest[i]=src[i];</div>
-<div class="line"><a name="l05871"></a><span class="lineno"> 5871</span>&#160;}</div>
-<div class="line"><a name="l05872"></a><span class="lineno"> 5872</span>&#160;</div>
-<div class="line"><a name="l05873"></a><span class="lineno"> 5873</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__pic_load_core(stbi__context *s,<span class="keywordtype">int</span> width,<span class="keywordtype">int</span> height,<span class="keywordtype">int</span> *comp, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *result)</div>
-<div class="line"><a name="l05874"></a><span class="lineno"> 5874</span>&#160;{</div>
-<div class="line"><a name="l05875"></a><span class="lineno"> 5875</span>&#160; <span class="keywordtype">int</span> act_comp=0,num_packets=0,y,chained;</div>
-<div class="line"><a name="l05876"></a><span class="lineno"> 5876</span>&#160; stbi__pic_packet packets[10];</div>
-<div class="line"><a name="l05877"></a><span class="lineno"> 5877</span>&#160;</div>
-<div class="line"><a name="l05878"></a><span class="lineno"> 5878</span>&#160; <span class="comment">// this will (should...) cater for even some bizarre stuff like having data</span></div>
-<div class="line"><a name="l05879"></a><span class="lineno"> 5879</span>&#160; <span class="comment">// for the same channel in multiple packets.</span></div>
-<div class="line"><a name="l05880"></a><span class="lineno"> 5880</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l05881"></a><span class="lineno"> 5881</span>&#160; stbi__pic_packet *packet;</div>
-<div class="line"><a name="l05882"></a><span class="lineno"> 5882</span>&#160;</div>
-<div class="line"><a name="l05883"></a><span class="lineno"> 5883</span>&#160; <span class="keywordflow">if</span> (num_packets==<span class="keyword">sizeof</span>(packets)/<span class="keyword">sizeof</span>(packets[0]))</div>
-<div class="line"><a name="l05884"></a><span class="lineno"> 5884</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>,<span class="stringliteral">&quot;too many packets&quot;</span>);</div>
-<div class="line"><a name="l05885"></a><span class="lineno"> 5885</span>&#160;</div>
-<div class="line"><a name="l05886"></a><span class="lineno"> 5886</span>&#160; packet = &amp;packets[num_packets++];</div>
+<div class="line"><a name="l05709"></a><span class="lineno"> 5709</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__png_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l05710"></a><span class="lineno"> 5710</span>&#160;{</div>
+<div class="line"><a name="l05711"></a><span class="lineno"> 5711</span>&#160; stbi__png p;</div>
+<div class="line"><a name="l05712"></a><span class="lineno"> 5712</span>&#160; p.s = s;</div>
+<div class="line"><a name="l05713"></a><span class="lineno"> 5713</span>&#160; <span class="keywordflow">return</span> stbi__png_info_raw(&amp;p, x, y, comp);</div>
+<div class="line"><a name="l05714"></a><span class="lineno"> 5714</span>&#160;}</div>
+<div class="line"><a name="l05715"></a><span class="lineno"> 5715</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05716"></a><span class="lineno"> 5716</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l05717"></a><span class="lineno"> 5717</span>&#160; <span class="comment">// Microsoft/Windows BMP image</span></div>
+<div class="line"><a name="l05718"></a><span class="lineno"> 5718</span>&#160;</div>
+<div class="line"><a name="l05719"></a><span class="lineno"> 5719</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l05720"></a><span class="lineno"> 5720</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test_raw(stbi__context *s)</div>
+<div class="line"><a name="l05721"></a><span class="lineno"> 5721</span>&#160;{</div>
+<div class="line"><a name="l05722"></a><span class="lineno"> 5722</span>&#160; <span class="keywordtype">int</span> r;</div>
+<div class="line"><a name="l05723"></a><span class="lineno"> 5723</span>&#160; <span class="keywordtype">int</span> sz;</div>
+<div class="line"><a name="l05724"></a><span class="lineno"> 5724</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;B&#39;</span>)</div>
+<div class="line"><a name="l05725"></a><span class="lineno"> 5725</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05726"></a><span class="lineno"> 5726</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;M&#39;</span>)</div>
+<div class="line"><a name="l05727"></a><span class="lineno"> 5727</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05728"></a><span class="lineno"> 5728</span>&#160; stbi__get32le(s); <span class="comment">// discard filesize</span></div>
+<div class="line"><a name="l05729"></a><span class="lineno"> 5729</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
+<div class="line"><a name="l05730"></a><span class="lineno"> 5730</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
+<div class="line"><a name="l05731"></a><span class="lineno"> 5731</span>&#160; stbi__get32le(s); <span class="comment">// discard data offset</span></div>
+<div class="line"><a name="l05732"></a><span class="lineno"> 5732</span>&#160; sz = stbi__get32le(s);</div>
+<div class="line"><a name="l05733"></a><span class="lineno"> 5733</span>&#160; r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);</div>
+<div class="line"><a name="l05734"></a><span class="lineno"> 5734</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l05735"></a><span class="lineno"> 5735</span>&#160;}</div>
+<div class="line"><a name="l05736"></a><span class="lineno"> 5736</span>&#160;</div>
+<div class="line"><a name="l05737"></a><span class="lineno"> 5737</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_test(stbi__context *s)</div>
+<div class="line"><a name="l05738"></a><span class="lineno"> 5738</span>&#160;{</div>
+<div class="line"><a name="l05739"></a><span class="lineno"> 5739</span>&#160; <span class="keywordtype">int</span> r = stbi__bmp_test_raw(s);</div>
+<div class="line"><a name="l05740"></a><span class="lineno"> 5740</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l05741"></a><span class="lineno"> 5741</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l05742"></a><span class="lineno"> 5742</span>&#160;}</div>
+<div class="line"><a name="l05743"></a><span class="lineno"> 5743</span>&#160;</div>
+<div class="line"><a name="l05744"></a><span class="lineno"> 5744</span>&#160;<span class="comment">// returns 0..31 for the highest set bit</span></div>
+<div class="line"><a name="l05745"></a><span class="lineno"> 5745</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__high_bit(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> z)</div>
+<div class="line"><a name="l05746"></a><span class="lineno"> 5746</span>&#160;{</div>
+<div class="line"><a name="l05747"></a><span class="lineno"> 5747</span>&#160; <span class="keywordtype">int</span> n = 0;</div>
+<div class="line"><a name="l05748"></a><span class="lineno"> 5748</span>&#160; <span class="keywordflow">if</span> (z == 0)</div>
+<div class="line"><a name="l05749"></a><span class="lineno"> 5749</span>&#160; <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l05750"></a><span class="lineno"> 5750</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x10000)</div>
+<div class="line"><a name="l05751"></a><span class="lineno"> 5751</span>&#160; n += 16, z &gt;&gt;= 16;</div>
+<div class="line"><a name="l05752"></a><span class="lineno"> 5752</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00100)</div>
+<div class="line"><a name="l05753"></a><span class="lineno"> 5753</span>&#160; n += 8, z &gt;&gt;= 8;</div>
+<div class="line"><a name="l05754"></a><span class="lineno"> 5754</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00010)</div>
+<div class="line"><a name="l05755"></a><span class="lineno"> 5755</span>&#160; n += 4, z &gt;&gt;= 4;</div>
+<div class="line"><a name="l05756"></a><span class="lineno"> 5756</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00004)</div>
+<div class="line"><a name="l05757"></a><span class="lineno"> 5757</span>&#160; n += 2, z &gt;&gt;= 2;</div>
+<div class="line"><a name="l05758"></a><span class="lineno"> 5758</span>&#160; <span class="keywordflow">if</span> (z &gt;= 0x00002)</div>
+<div class="line"><a name="l05759"></a><span class="lineno"> 5759</span>&#160; n += 1, z &gt;&gt;= 1;</div>
+<div class="line"><a name="l05760"></a><span class="lineno"> 5760</span>&#160; <span class="keywordflow">return</span> n;</div>
+<div class="line"><a name="l05761"></a><span class="lineno"> 5761</span>&#160;}</div>
+<div class="line"><a name="l05762"></a><span class="lineno"> 5762</span>&#160;</div>
+<div class="line"><a name="l05763"></a><span class="lineno"> 5763</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bitcount(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> a)</div>
+<div class="line"><a name="l05764"></a><span class="lineno"> 5764</span>&#160;{</div>
+<div class="line"><a name="l05765"></a><span class="lineno"> 5765</span>&#160; a = (a &amp; 0x55555555) + ((a &gt;&gt; 1) &amp; 0x55555555); <span class="comment">// max 2</span></div>
+<div class="line"><a name="l05766"></a><span class="lineno"> 5766</span>&#160; a = (a &amp; 0x33333333) + ((a &gt;&gt; 2) &amp; 0x33333333); <span class="comment">// max 4</span></div>
+<div class="line"><a name="l05767"></a><span class="lineno"> 5767</span>&#160; a = (a + (a &gt;&gt; 4)) &amp; 0x0f0f0f0f; <span class="comment">// max 8 per 4, now 8 bits</span></div>
+<div class="line"><a name="l05768"></a><span class="lineno"> 5768</span>&#160; a = (a + (a &gt;&gt; 8)); <span class="comment">// max 16 per 8 bits</span></div>
+<div class="line"><a name="l05769"></a><span class="lineno"> 5769</span>&#160; a = (a + (a &gt;&gt; 16)); <span class="comment">// max 32 per 8 bits</span></div>
+<div class="line"><a name="l05770"></a><span class="lineno"> 5770</span>&#160; <span class="keywordflow">return</span> a &amp; 0xff;</div>
+<div class="line"><a name="l05771"></a><span class="lineno"> 5771</span>&#160;}</div>
+<div class="line"><a name="l05772"></a><span class="lineno"> 5772</span>&#160;</div>
+<div class="line"><a name="l05773"></a><span class="lineno"> 5773</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__shiftsigned(<span class="keywordtype">int</span> v, <span class="keywordtype">int</span> shift, <span class="keywordtype">int</span> bits)</div>
+<div class="line"><a name="l05774"></a><span class="lineno"> 5774</span>&#160;{</div>
+<div class="line"><a name="l05775"></a><span class="lineno"> 5775</span>&#160; <span class="keywordtype">int</span> result;</div>
+<div class="line"><a name="l05776"></a><span class="lineno"> 5776</span>&#160; <span class="keywordtype">int</span> z = 0;</div>
+<div class="line"><a name="l05777"></a><span class="lineno"> 5777</span>&#160;</div>
+<div class="line"><a name="l05778"></a><span class="lineno"> 5778</span>&#160; <span class="keywordflow">if</span> (shift &lt; 0)</div>
+<div class="line"><a name="l05779"></a><span class="lineno"> 5779</span>&#160; v &lt;&lt;= -shift;</div>
+<div class="line"><a name="l05780"></a><span class="lineno"> 5780</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05781"></a><span class="lineno"> 5781</span>&#160; v &gt;&gt;= shift;</div>
+<div class="line"><a name="l05782"></a><span class="lineno"> 5782</span>&#160; result = v;</div>
+<div class="line"><a name="l05783"></a><span class="lineno"> 5783</span>&#160;</div>
+<div class="line"><a name="l05784"></a><span class="lineno"> 5784</span>&#160; z = bits;</div>
+<div class="line"><a name="l05785"></a><span class="lineno"> 5785</span>&#160; <span class="keywordflow">while</span> (z &lt; 8) {</div>
+<div class="line"><a name="l05786"></a><span class="lineno"> 5786</span>&#160; result += v &gt;&gt; z;</div>
+<div class="line"><a name="l05787"></a><span class="lineno"> 5787</span>&#160; z += bits;</div>
+<div class="line"><a name="l05788"></a><span class="lineno"> 5788</span>&#160; }</div>
+<div class="line"><a name="l05789"></a><span class="lineno"> 5789</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l05790"></a><span class="lineno"> 5790</span>&#160;}</div>
+<div class="line"><a name="l05791"></a><span class="lineno"> 5791</span>&#160;</div>
+<div class="line"><a name="l05792"></a><span class="lineno"> 5792</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l05793"></a><span class="lineno"> 5793</span>&#160; <span class="keywordtype">int</span> bpp, offset, hsz;</div>
+<div class="line"><a name="l05794"></a><span class="lineno"> 5794</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mr, mg, mb, ma, all_a;</div>
+<div class="line"><a name="l05795"></a><span class="lineno"> 5795</span>&#160;} stbi__bmp_data;</div>
+<div class="line"><a name="l05796"></a><span class="lineno"> 5796</span>&#160;</div>
+<div class="line"><a name="l05797"></a><span class="lineno"> 5797</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)</div>
+<div class="line"><a name="l05798"></a><span class="lineno"> 5798</span>&#160;{</div>
+<div class="line"><a name="l05799"></a><span class="lineno"> 5799</span>&#160; <span class="keywordtype">int</span> hsz;</div>
+<div class="line"><a name="l05800"></a><span class="lineno"> 5800</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;B&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;M&#39;</span>)</div>
+<div class="line"><a name="l05801"></a><span class="lineno"> 5801</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;not BMP&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
+<div class="line"><a name="l05802"></a><span class="lineno"> 5802</span>&#160; stbi__get32le(s); <span class="comment">// discard filesize</span></div>
+<div class="line"><a name="l05803"></a><span class="lineno"> 5803</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
+<div class="line"><a name="l05804"></a><span class="lineno"> 5804</span>&#160; stbi__get16le(s); <span class="comment">// discard reserved</span></div>
+<div class="line"><a name="l05805"></a><span class="lineno"> 5805</span>&#160; info-&gt;offset = stbi__get32le(s);</div>
+<div class="line"><a name="l05806"></a><span class="lineno"> 5806</span>&#160; info-&gt;hsz = hsz = stbi__get32le(s);</div>
+<div class="line"><a name="l05807"></a><span class="lineno"> 5807</span>&#160; info-&gt;mr = info-&gt;mg = info-&gt;mb = info-&gt;ma = 0;</div>
+<div class="line"><a name="l05808"></a><span class="lineno"> 5808</span>&#160;</div>
+<div class="line"><a name="l05809"></a><span class="lineno"> 5809</span>&#160; <span class="keywordflow">if</span> (hsz != 12 &amp;&amp; hsz != 40 &amp;&amp; hsz != 56 &amp;&amp; hsz != 108 &amp;&amp; hsz != 124)</div>
+<div class="line"><a name="l05810"></a><span class="lineno"> 5810</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown BMP&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: unknown&quot;</span>);</div>
+<div class="line"><a name="l05811"></a><span class="lineno"> 5811</span>&#160; <span class="keywordflow">if</span> (hsz == 12) {</div>
+<div class="line"><a name="l05812"></a><span class="lineno"> 5812</span>&#160; s-&gt;img_x = stbi__get16le(s);</div>
+<div class="line"><a name="l05813"></a><span class="lineno"> 5813</span>&#160; s-&gt;img_y = stbi__get16le(s);</div>
+<div class="line"><a name="l05814"></a><span class="lineno"> 5814</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05815"></a><span class="lineno"> 5815</span>&#160; s-&gt;img_x = stbi__get32le(s);</div>
+<div class="line"><a name="l05816"></a><span class="lineno"> 5816</span>&#160; s-&gt;img_y = stbi__get32le(s);</div>
+<div class="line"><a name="l05817"></a><span class="lineno"> 5817</span>&#160; }</div>
+<div class="line"><a name="l05818"></a><span class="lineno"> 5818</span>&#160; <span class="keywordflow">if</span> (stbi__get16le(s) != 1)</div>
+<div class="line"><a name="l05819"></a><span class="lineno"> 5819</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
+<div class="line"><a name="l05820"></a><span class="lineno"> 5820</span>&#160; info-&gt;bpp = stbi__get16le(s);</div>
+<div class="line"><a name="l05821"></a><span class="lineno"> 5821</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 1)</div>
+<div class="line"><a name="l05822"></a><span class="lineno"> 5822</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;monochrome&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: 1-bit&quot;</span>);</div>
+<div class="line"><a name="l05823"></a><span class="lineno"> 5823</span>&#160; <span class="keywordflow">if</span> (hsz != 12) {</div>
+<div class="line"><a name="l05824"></a><span class="lineno"> 5824</span>&#160; <span class="keywordtype">int</span> compress = stbi__get32le(s);</div>
+<div class="line"><a name="l05825"></a><span class="lineno"> 5825</span>&#160; <span class="keywordflow">if</span> (compress == 1 || compress == 2)</div>
+<div class="line"><a name="l05826"></a><span class="lineno"> 5826</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;BMP RLE&quot;</span>, <span class="stringliteral">&quot;BMP type not supported: RLE&quot;</span>);</div>
+<div class="line"><a name="l05827"></a><span class="lineno"> 5827</span>&#160; stbi__get32le(s); <span class="comment">// discard sizeof</span></div>
+<div class="line"><a name="l05828"></a><span class="lineno"> 5828</span>&#160; stbi__get32le(s); <span class="comment">// discard hres</span></div>
+<div class="line"><a name="l05829"></a><span class="lineno"> 5829</span>&#160; stbi__get32le(s); <span class="comment">// discard vres</span></div>
+<div class="line"><a name="l05830"></a><span class="lineno"> 5830</span>&#160; stbi__get32le(s); <span class="comment">// discard colorsused</span></div>
+<div class="line"><a name="l05831"></a><span class="lineno"> 5831</span>&#160; stbi__get32le(s); <span class="comment">// discard max important</span></div>
+<div class="line"><a name="l05832"></a><span class="lineno"> 5832</span>&#160; <span class="keywordflow">if</span> (hsz == 40 || hsz == 56) {</div>
+<div class="line"><a name="l05833"></a><span class="lineno"> 5833</span>&#160; <span class="keywordflow">if</span> (hsz == 56) {</div>
+<div class="line"><a name="l05834"></a><span class="lineno"> 5834</span>&#160; stbi__get32le(s);</div>
+<div class="line"><a name="l05835"></a><span class="lineno"> 5835</span>&#160; stbi__get32le(s);</div>
+<div class="line"><a name="l05836"></a><span class="lineno"> 5836</span>&#160; stbi__get32le(s);</div>
+<div class="line"><a name="l05837"></a><span class="lineno"> 5837</span>&#160; stbi__get32le(s);</div>
+<div class="line"><a name="l05838"></a><span class="lineno"> 5838</span>&#160; }</div>
+<div class="line"><a name="l05839"></a><span class="lineno"> 5839</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 16 || info-&gt;bpp == 32) {</div>
+<div class="line"><a name="l05840"></a><span class="lineno"> 5840</span>&#160; <span class="keywordflow">if</span> (compress == 0) {</div>
+<div class="line"><a name="l05841"></a><span class="lineno"> 5841</span>&#160; <span class="keywordflow">if</span> (info-&gt;bpp == 32) {</div>
+<div class="line"><a name="l05842"></a><span class="lineno"> 5842</span>&#160; info-&gt;mr = 0xffu &lt;&lt; 16;</div>
+<div class="line"><a name="l05843"></a><span class="lineno"> 5843</span>&#160; info-&gt;mg = 0xffu &lt;&lt; 8;</div>
+<div class="line"><a name="l05844"></a><span class="lineno"> 5844</span>&#160; info-&gt;mb = 0xffu &lt;&lt; 0;</div>
+<div class="line"><a name="l05845"></a><span class="lineno"> 5845</span>&#160; info-&gt;ma = 0xffu &lt;&lt; 24;</div>
+<div class="line"><a name="l05846"></a><span class="lineno"> 5846</span>&#160; info-&gt;all_a = 0; <span class="comment">// if all_a is 0 at end, then we loaded</span></div>
+<div class="line"><a name="l05847"></a><span class="lineno"> 5847</span>&#160; <span class="comment">// alpha channel but it was all 0</span></div>
+<div class="line"><a name="l05848"></a><span class="lineno"> 5848</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05849"></a><span class="lineno"> 5849</span>&#160; info-&gt;mr = 31u &lt;&lt; 10;</div>
+<div class="line"><a name="l05850"></a><span class="lineno"> 5850</span>&#160; info-&gt;mg = 31u &lt;&lt; 5;</div>
+<div class="line"><a name="l05851"></a><span class="lineno"> 5851</span>&#160; info-&gt;mb = 31u &lt;&lt; 0;</div>
+<div class="line"><a name="l05852"></a><span class="lineno"> 5852</span>&#160; }</div>
+<div class="line"><a name="l05853"></a><span class="lineno"> 5853</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (compress == 3) {</div>
+<div class="line"><a name="l05854"></a><span class="lineno"> 5854</span>&#160; info-&gt;mr = stbi__get32le(s);</div>
+<div class="line"><a name="l05855"></a><span class="lineno"> 5855</span>&#160; info-&gt;mg = stbi__get32le(s);</div>
+<div class="line"><a name="l05856"></a><span class="lineno"> 5856</span>&#160; info-&gt;mb = stbi__get32le(s);</div>
+<div class="line"><a name="l05857"></a><span class="lineno"> 5857</span>&#160; <span class="comment">// not documented, but generated by photoshop and handled by</span></div>
+<div class="line"><a name="l05858"></a><span class="lineno"> 5858</span>&#160; <span class="comment">// mspaint</span></div>
+<div class="line"><a name="l05859"></a><span class="lineno"> 5859</span>&#160; <span class="keywordflow">if</span> (info-&gt;mr == info-&gt;mg &amp;&amp; info-&gt;mg == info-&gt;mb) {</div>
+<div class="line"><a name="l05860"></a><span class="lineno"> 5860</span>&#160; <span class="comment">// ?!?!?</span></div>
+<div class="line"><a name="l05861"></a><span class="lineno"> 5861</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
+<div class="line"><a name="l05862"></a><span class="lineno"> 5862</span>&#160; }</div>
+<div class="line"><a name="l05863"></a><span class="lineno"> 5863</span>&#160; } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05864"></a><span class="lineno"> 5864</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
+<div class="line"><a name="l05865"></a><span class="lineno"> 5865</span>&#160; }</div>
+<div class="line"><a name="l05866"></a><span class="lineno"> 5866</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05867"></a><span class="lineno"> 5867</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l05868"></a><span class="lineno"> 5868</span>&#160; <span class="keywordflow">if</span> (hsz != 108 &amp;&amp; hsz != 124)</div>
+<div class="line"><a name="l05869"></a><span class="lineno"> 5869</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad BMP&quot;</span>, <span class="stringliteral">&quot;bad BMP&quot;</span>);</div>
+<div class="line"><a name="l05870"></a><span class="lineno"> 5870</span>&#160; info-&gt;mr = stbi__get32le(s);</div>
+<div class="line"><a name="l05871"></a><span class="lineno"> 5871</span>&#160; info-&gt;mg = stbi__get32le(s);</div>
+<div class="line"><a name="l05872"></a><span class="lineno"> 5872</span>&#160; info-&gt;mb = stbi__get32le(s);</div>
+<div class="line"><a name="l05873"></a><span class="lineno"> 5873</span>&#160; info-&gt;ma = stbi__get32le(s);</div>
+<div class="line"><a name="l05874"></a><span class="lineno"> 5874</span>&#160; stbi__get32le(s); <span class="comment">// discard color space</span></div>
+<div class="line"><a name="l05875"></a><span class="lineno"> 5875</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 12; ++i)</div>
+<div class="line"><a name="l05876"></a><span class="lineno"> 5876</span>&#160; stbi__get32le(s); <span class="comment">// discard color space parameters</span></div>
+<div class="line"><a name="l05877"></a><span class="lineno"> 5877</span>&#160; <span class="keywordflow">if</span> (hsz == 124) {</div>
+<div class="line"><a name="l05878"></a><span class="lineno"> 5878</span>&#160; stbi__get32le(s); <span class="comment">// discard rendering intent</span></div>
+<div class="line"><a name="l05879"></a><span class="lineno"> 5879</span>&#160; stbi__get32le(s); <span class="comment">// discard offset of profile data</span></div>
+<div class="line"><a name="l05880"></a><span class="lineno"> 5880</span>&#160; stbi__get32le(s); <span class="comment">// discard size of profile data</span></div>
+<div class="line"><a name="l05881"></a><span class="lineno"> 5881</span>&#160; stbi__get32le(s); <span class="comment">// discard reserved</span></div>
+<div class="line"><a name="l05882"></a><span class="lineno"> 5882</span>&#160; }</div>
+<div class="line"><a name="l05883"></a><span class="lineno"> 5883</span>&#160; }</div>
+<div class="line"><a name="l05884"></a><span class="lineno"> 5884</span>&#160; }</div>
+<div class="line"><a name="l05885"></a><span class="lineno"> 5885</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *)1;</div>
+<div class="line"><a name="l05886"></a><span class="lineno"> 5886</span>&#160;}</div>
<div class="line"><a name="l05887"></a><span class="lineno"> 5887</span>&#160;</div>
-<div class="line"><a name="l05888"></a><span class="lineno"> 5888</span>&#160; chained = stbi__get8(s);</div>
-<div class="line"><a name="l05889"></a><span class="lineno"> 5889</span>&#160; packet-&gt;size = stbi__get8(s);</div>
-<div class="line"><a name="l05890"></a><span class="lineno"> 5890</span>&#160; packet-&gt;type = stbi__get8(s);</div>
-<div class="line"><a name="l05891"></a><span class="lineno"> 5891</span>&#160; packet-&gt;channel = stbi__get8(s);</div>
-<div class="line"><a name="l05892"></a><span class="lineno"> 5892</span>&#160;</div>
-<div class="line"><a name="l05893"></a><span class="lineno"> 5893</span>&#160; act_comp |= packet-&gt;channel;</div>
-<div class="line"><a name="l05894"></a><span class="lineno"> 5894</span>&#160;</div>
-<div class="line"><a name="l05895"></a><span class="lineno"> 5895</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;file too short (reading packets)&quot;</span>);</div>
-<div class="line"><a name="l05896"></a><span class="lineno"> 5896</span>&#160; <span class="keywordflow">if</span> (packet-&gt;size != 8) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>,<span class="stringliteral">&quot;packet isn&#39;t 8bpp&quot;</span>);</div>
-<div class="line"><a name="l05897"></a><span class="lineno"> 5897</span>&#160; } <span class="keywordflow">while</span> (chained);</div>
+<div class="line"><a name="l05888"></a><span class="lineno"> 5888</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__bmp_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l05889"></a><span class="lineno"> 5889</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l05890"></a><span class="lineno"> 5890</span>&#160;{</div>
+<div class="line"><a name="l05891"></a><span class="lineno"> 5891</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
+<div class="line"><a name="l05892"></a><span class="lineno"> 5892</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mr = 0, mg = 0, mb = 0, ma = 0, all_a;</div>
+<div class="line"><a name="l05893"></a><span class="lineno"> 5893</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4];</div>
+<div class="line"><a name="l05894"></a><span class="lineno"> 5894</span>&#160; <span class="keywordtype">int</span> psize = 0, i, j, width;</div>
+<div class="line"><a name="l05895"></a><span class="lineno"> 5895</span>&#160; <span class="keywordtype">int</span> flip_vertically, pad, target;</div>
+<div class="line"><a name="l05896"></a><span class="lineno"> 5896</span>&#160; stbi__bmp_data info;</div>
+<div class="line"><a name="l05897"></a><span class="lineno"> 5897</span>&#160; STBI_NOTUSED(ri);</div>
<div class="line"><a name="l05898"></a><span class="lineno"> 5898</span>&#160;</div>
-<div class="line"><a name="l05899"></a><span class="lineno"> 5899</span>&#160; *comp = (act_comp &amp; 0x10 ? 4 : 3); <span class="comment">// has alpha channel?</span></div>
-<div class="line"><a name="l05900"></a><span class="lineno"> 5900</span>&#160;</div>
-<div class="line"><a name="l05901"></a><span class="lineno"> 5901</span>&#160; <span class="keywordflow">for</span>(y=0; y&lt;height; ++y) {</div>
-<div class="line"><a name="l05902"></a><span class="lineno"> 5902</span>&#160; <span class="keywordtype">int</span> packet_idx;</div>
-<div class="line"><a name="l05903"></a><span class="lineno"> 5903</span>&#160;</div>
-<div class="line"><a name="l05904"></a><span class="lineno"> 5904</span>&#160; <span class="keywordflow">for</span>(packet_idx=0; packet_idx &lt; num_packets; ++packet_idx) {</div>
-<div class="line"><a name="l05905"></a><span class="lineno"> 5905</span>&#160; stbi__pic_packet *packet = &amp;packets[packet_idx];</div>
-<div class="line"><a name="l05906"></a><span class="lineno"> 5906</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest = result+y*width*4;</div>
-<div class="line"><a name="l05907"></a><span class="lineno"> 5907</span>&#160;</div>
-<div class="line"><a name="l05908"></a><span class="lineno"> 5908</span>&#160; <span class="keywordflow">switch</span> (packet-&gt;type) {</div>
-<div class="line"><a name="l05909"></a><span class="lineno"> 5909</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l05910"></a><span class="lineno"> 5910</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>,<span class="stringliteral">&quot;packet has bad compression type&quot;</span>);</div>
+<div class="line"><a name="l05899"></a><span class="lineno"> 5899</span>&#160; info.all_a = 255;</div>
+<div class="line"><a name="l05900"></a><span class="lineno"> 5900</span>&#160; <span class="keywordflow">if</span> (stbi__bmp_parse_header(s, &amp;info) == NULL)</div>
+<div class="line"><a name="l05901"></a><span class="lineno"> 5901</span>&#160; <span class="keywordflow">return</span> NULL; <span class="comment">// error code already set</span></div>
+<div class="line"><a name="l05902"></a><span class="lineno"> 5902</span>&#160;</div>
+<div class="line"><a name="l05903"></a><span class="lineno"> 5903</span>&#160; flip_vertically = ((int)s-&gt;img_y) &gt; 0;</div>
+<div class="line"><a name="l05904"></a><span class="lineno"> 5904</span>&#160; s-&gt;img_y = abs((<span class="keywordtype">int</span>)s-&gt;img_y);</div>
+<div class="line"><a name="l05905"></a><span class="lineno"> 5905</span>&#160;</div>
+<div class="line"><a name="l05906"></a><span class="lineno"> 5906</span>&#160; mr = info.mr;</div>
+<div class="line"><a name="l05907"></a><span class="lineno"> 5907</span>&#160; mg = info.mg;</div>
+<div class="line"><a name="l05908"></a><span class="lineno"> 5908</span>&#160; mb = info.mb;</div>
+<div class="line"><a name="l05909"></a><span class="lineno"> 5909</span>&#160; ma = info.ma;</div>
+<div class="line"><a name="l05910"></a><span class="lineno"> 5910</span>&#160; all_a = info.all_a;</div>
<div class="line"><a name="l05911"></a><span class="lineno"> 5911</span>&#160;</div>
-<div class="line"><a name="l05912"></a><span class="lineno"> 5912</span>&#160; <span class="keywordflow">case</span> 0: {<span class="comment">//uncompressed</span></div>
-<div class="line"><a name="l05913"></a><span class="lineno"> 5913</span>&#160; <span class="keywordtype">int</span> x;</div>
-<div class="line"><a name="l05914"></a><span class="lineno"> 5914</span>&#160;</div>
-<div class="line"><a name="l05915"></a><span class="lineno"> 5915</span>&#160; <span class="keywordflow">for</span>(x=0;x&lt;width;++x, dest+=4)</div>
-<div class="line"><a name="l05916"></a><span class="lineno"> 5916</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s,packet-&gt;channel,dest))</div>
-<div class="line"><a name="l05917"></a><span class="lineno"> 5917</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05918"></a><span class="lineno"> 5918</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l05919"></a><span class="lineno"> 5919</span>&#160; }</div>
-<div class="line"><a name="l05920"></a><span class="lineno"> 5920</span>&#160;</div>
-<div class="line"><a name="l05921"></a><span class="lineno"> 5921</span>&#160; <span class="keywordflow">case</span> 1:<span class="comment">//Pure RLE</span></div>
-<div class="line"><a name="l05922"></a><span class="lineno"> 5922</span>&#160; {</div>
-<div class="line"><a name="l05923"></a><span class="lineno"> 5923</span>&#160; <span class="keywordtype">int</span> left=width, i;</div>
-<div class="line"><a name="l05924"></a><span class="lineno"> 5924</span>&#160;</div>
-<div class="line"><a name="l05925"></a><span class="lineno"> 5925</span>&#160; <span class="keywordflow">while</span> (left&gt;0) {</div>
-<div class="line"><a name="l05926"></a><span class="lineno"> 5926</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> count,value[4];</div>
-<div class="line"><a name="l05927"></a><span class="lineno"> 5927</span>&#160;</div>
-<div class="line"><a name="l05928"></a><span class="lineno"> 5928</span>&#160; count=stbi__get8(s);</div>
-<div class="line"><a name="l05929"></a><span class="lineno"> 5929</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;file too short (pure read count)&quot;</span>);</div>
-<div class="line"><a name="l05930"></a><span class="lineno"> 5930</span>&#160;</div>
-<div class="line"><a name="l05931"></a><span class="lineno"> 5931</span>&#160; <span class="keywordflow">if</span> (count &gt; left)</div>
-<div class="line"><a name="l05932"></a><span class="lineno"> 5932</span>&#160; count = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) left;</div>
-<div class="line"><a name="l05933"></a><span class="lineno"> 5933</span>&#160;</div>
-<div class="line"><a name="l05934"></a><span class="lineno"> 5934</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s,packet-&gt;channel,value)) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05935"></a><span class="lineno"> 5935</span>&#160;</div>
-<div class="line"><a name="l05936"></a><span class="lineno"> 5936</span>&#160; <span class="keywordflow">for</span>(i=0; i&lt;count; ++i,dest+=4)</div>
-<div class="line"><a name="l05937"></a><span class="lineno"> 5937</span>&#160; stbi__copyval(packet-&gt;channel,dest,value);</div>
-<div class="line"><a name="l05938"></a><span class="lineno"> 5938</span>&#160; left -= count;</div>
-<div class="line"><a name="l05939"></a><span class="lineno"> 5939</span>&#160; }</div>
-<div class="line"><a name="l05940"></a><span class="lineno"> 5940</span>&#160; }</div>
-<div class="line"><a name="l05941"></a><span class="lineno"> 5941</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l05942"></a><span class="lineno"> 5942</span>&#160;</div>
-<div class="line"><a name="l05943"></a><span class="lineno"> 5943</span>&#160; <span class="keywordflow">case</span> 2: {<span class="comment">//Mixed RLE</span></div>
-<div class="line"><a name="l05944"></a><span class="lineno"> 5944</span>&#160; <span class="keywordtype">int</span> left=width;</div>
-<div class="line"><a name="l05945"></a><span class="lineno"> 5945</span>&#160; <span class="keywordflow">while</span> (left&gt;0) {</div>
-<div class="line"><a name="l05946"></a><span class="lineno"> 5946</span>&#160; <span class="keywordtype">int</span> count = stbi__get8(s), i;</div>
-<div class="line"><a name="l05947"></a><span class="lineno"> 5947</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;file too short (mixed read count)&quot;</span>);</div>
-<div class="line"><a name="l05948"></a><span class="lineno"> 5948</span>&#160;</div>
-<div class="line"><a name="l05949"></a><span class="lineno"> 5949</span>&#160; <span class="keywordflow">if</span> (count &gt;= 128) { <span class="comment">// Repeated</span></div>
-<div class="line"><a name="l05950"></a><span class="lineno"> 5950</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> value[4];</div>
-<div class="line"><a name="l05951"></a><span class="lineno"> 5951</span>&#160;</div>
-<div class="line"><a name="l05952"></a><span class="lineno"> 5952</span>&#160; <span class="keywordflow">if</span> (count==128)</div>
-<div class="line"><a name="l05953"></a><span class="lineno"> 5953</span>&#160; count = stbi__get16be(s);</div>
-<div class="line"><a name="l05954"></a><span class="lineno"> 5954</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05955"></a><span class="lineno"> 5955</span>&#160; count -= 127;</div>
-<div class="line"><a name="l05956"></a><span class="lineno"> 5956</span>&#160; <span class="keywordflow">if</span> (count &gt; left)</div>
-<div class="line"><a name="l05957"></a><span class="lineno"> 5957</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;scanline overrun&quot;</span>);</div>
-<div class="line"><a name="l05958"></a><span class="lineno"> 5958</span>&#160;</div>
-<div class="line"><a name="l05959"></a><span class="lineno"> 5959</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s,packet-&gt;channel,value))</div>
-<div class="line"><a name="l05960"></a><span class="lineno"> 5960</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05961"></a><span class="lineno"> 5961</span>&#160;</div>
-<div class="line"><a name="l05962"></a><span class="lineno"> 5962</span>&#160; <span class="keywordflow">for</span>(i=0;i&lt;count;++i, dest += 4)</div>
-<div class="line"><a name="l05963"></a><span class="lineno"> 5963</span>&#160; stbi__copyval(packet-&gt;channel,dest,value);</div>
-<div class="line"><a name="l05964"></a><span class="lineno"> 5964</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Raw</span></div>
-<div class="line"><a name="l05965"></a><span class="lineno"> 5965</span>&#160; ++count;</div>
-<div class="line"><a name="l05966"></a><span class="lineno"> 5966</span>&#160; <span class="keywordflow">if</span> (count&gt;left) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;scanline overrun&quot;</span>);</div>
-<div class="line"><a name="l05967"></a><span class="lineno"> 5967</span>&#160;</div>
-<div class="line"><a name="l05968"></a><span class="lineno"> 5968</span>&#160; <span class="keywordflow">for</span>(i=0;i&lt;count;++i, dest+=4)</div>
-<div class="line"><a name="l05969"></a><span class="lineno"> 5969</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s,packet-&gt;channel,dest))</div>
-<div class="line"><a name="l05970"></a><span class="lineno"> 5970</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l05971"></a><span class="lineno"> 5971</span>&#160; }</div>
-<div class="line"><a name="l05972"></a><span class="lineno"> 5972</span>&#160; left-=count;</div>
-<div class="line"><a name="l05973"></a><span class="lineno"> 5973</span>&#160; }</div>
-<div class="line"><a name="l05974"></a><span class="lineno"> 5974</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l05975"></a><span class="lineno"> 5975</span>&#160; }</div>
-<div class="line"><a name="l05976"></a><span class="lineno"> 5976</span>&#160; }</div>
-<div class="line"><a name="l05977"></a><span class="lineno"> 5977</span>&#160; }</div>
-<div class="line"><a name="l05978"></a><span class="lineno"> 5978</span>&#160; }</div>
-<div class="line"><a name="l05979"></a><span class="lineno"> 5979</span>&#160;</div>
-<div class="line"><a name="l05980"></a><span class="lineno"> 5980</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l05981"></a><span class="lineno"> 5981</span>&#160;}</div>
-<div class="line"><a name="l05982"></a><span class="lineno"> 5982</span>&#160;</div>
-<div class="line"><a name="l05983"></a><span class="lineno"> 5983</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pic_load(stbi__context *s,<span class="keywordtype">int</span> *px,<span class="keywordtype">int</span> *py,<span class="keywordtype">int</span> *comp,<span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l05984"></a><span class="lineno"> 5984</span>&#160;{</div>
-<div class="line"><a name="l05985"></a><span class="lineno"> 5985</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *result;</div>
-<div class="line"><a name="l05986"></a><span class="lineno"> 5986</span>&#160; <span class="keywordtype">int</span> i, x,y, internal_comp;</div>
-<div class="line"><a name="l05987"></a><span class="lineno"> 5987</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l05988"></a><span class="lineno"> 5988</span>&#160;</div>
-<div class="line"><a name="l05989"></a><span class="lineno"> 5989</span>&#160; <span class="keywordflow">if</span> (!comp) comp = &amp;internal_comp;</div>
-<div class="line"><a name="l05990"></a><span class="lineno"> 5990</span>&#160;</div>
-<div class="line"><a name="l05991"></a><span class="lineno"> 5991</span>&#160; <span class="keywordflow">for</span> (i=0; i&lt;92; ++i)</div>
-<div class="line"><a name="l05992"></a><span class="lineno"> 5992</span>&#160; stbi__get8(s);</div>
-<div class="line"><a name="l05993"></a><span class="lineno"> 5993</span>&#160;</div>
-<div class="line"><a name="l05994"></a><span class="lineno"> 5994</span>&#160; x = stbi__get16be(s);</div>
-<div class="line"><a name="l05995"></a><span class="lineno"> 5995</span>&#160; y = stbi__get16be(s);</div>
-<div class="line"><a name="l05996"></a><span class="lineno"> 5996</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,<span class="stringliteral">&quot;file too short (pic header)&quot;</span>);</div>
-<div class="line"><a name="l05997"></a><span class="lineno"> 5997</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(x, y, 4, 0)) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;PIC image too large to decode&quot;</span>);</div>
-<div class="line"><a name="l05998"></a><span class="lineno"> 5998</span>&#160;</div>
-<div class="line"><a name="l05999"></a><span class="lineno"> 5999</span>&#160; stbi__get32be(s); <span class="comment">//skip `ratio&#39;</span></div>
-<div class="line"><a name="l06000"></a><span class="lineno"> 6000</span>&#160; stbi__get16be(s); <span class="comment">//skip `fields&#39;</span></div>
-<div class="line"><a name="l06001"></a><span class="lineno"> 6001</span>&#160; stbi__get16be(s); <span class="comment">//skip `pad&#39;</span></div>
-<div class="line"><a name="l06002"></a><span class="lineno"> 6002</span>&#160;</div>
-<div class="line"><a name="l06003"></a><span class="lineno"> 6003</span>&#160; <span class="comment">// intermediate buffer is RGBA</span></div>
-<div class="line"><a name="l06004"></a><span class="lineno"> 6004</span>&#160; result = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(x, y, 4, 0);</div>
-<div class="line"><a name="l06005"></a><span class="lineno"> 6005</span>&#160; memset(result, 0xff, x*y*4);</div>
-<div class="line"><a name="l06006"></a><span class="lineno"> 6006</span>&#160;</div>
-<div class="line"><a name="l06007"></a><span class="lineno"> 6007</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_load_core(s,x,y,comp, result)) {</div>
-<div class="line"><a name="l06008"></a><span class="lineno"> 6008</span>&#160; STBI_FREE(result);</div>
-<div class="line"><a name="l06009"></a><span class="lineno"> 6009</span>&#160; result=0;</div>
-<div class="line"><a name="l06010"></a><span class="lineno"> 6010</span>&#160; }</div>
-<div class="line"><a name="l06011"></a><span class="lineno"> 6011</span>&#160; *px = x;</div>
-<div class="line"><a name="l06012"></a><span class="lineno"> 6012</span>&#160; *py = y;</div>
-<div class="line"><a name="l06013"></a><span class="lineno"> 6013</span>&#160; <span class="keywordflow">if</span> (req_comp == 0) req_comp = *comp;</div>
-<div class="line"><a name="l06014"></a><span class="lineno"> 6014</span>&#160; result=stbi__convert_format(result,4,req_comp,x,y);</div>
-<div class="line"><a name="l06015"></a><span class="lineno"> 6015</span>&#160;</div>
-<div class="line"><a name="l06016"></a><span class="lineno"> 6016</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l06017"></a><span class="lineno"> 6017</span>&#160;}</div>
-<div class="line"><a name="l06018"></a><span class="lineno"> 6018</span>&#160;</div>
-<div class="line"><a name="l06019"></a><span class="lineno"> 6019</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test(stbi__context *s)</div>
-<div class="line"><a name="l06020"></a><span class="lineno"> 6020</span>&#160;{</div>
-<div class="line"><a name="l06021"></a><span class="lineno"> 6021</span>&#160; <span class="keywordtype">int</span> r = stbi__pic_test_core(s);</div>
-<div class="line"><a name="l06022"></a><span class="lineno"> 6022</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06023"></a><span class="lineno"> 6023</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l06024"></a><span class="lineno"> 6024</span>&#160;}</div>
-<div class="line"><a name="l06025"></a><span class="lineno"> 6025</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06026"></a><span class="lineno"> 6026</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06027"></a><span class="lineno"> 6027</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
-<div class="line"><a name="l06028"></a><span class="lineno"> 6028</span>&#160;<span class="comment">// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb</span></div>
-<div class="line"><a name="l06029"></a><span class="lineno"> 6029</span>&#160;</div>
-<div class="line"><a name="l06030"></a><span class="lineno"> 6030</span>&#160;<span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
-<div class="line"><a name="l06031"></a><span class="lineno"> 6031</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l06032"></a><span class="lineno"> 6032</span>&#160;{</div>
-<div class="line"><a name="l06033"></a><span class="lineno"> 6033</span>&#160; stbi__int16 prefix;</div>
-<div class="line"><a name="l06034"></a><span class="lineno"> 6034</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> first;</div>
-<div class="line"><a name="l06035"></a><span class="lineno"> 6035</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> suffix;</div>
-<div class="line"><a name="l06036"></a><span class="lineno"> 6036</span>&#160;} stbi__gif_lzw;</div>
-<div class="line"><a name="l06037"></a><span class="lineno"> 6037</span>&#160;</div>
-<div class="line"><a name="l06038"></a><span class="lineno"> 6038</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
-<div class="line"><a name="l06039"></a><span class="lineno"> 6039</span>&#160;{</div>
-<div class="line"><a name="l06040"></a><span class="lineno"> 6040</span>&#160; <span class="keywordtype">int</span> w,h;</div>
-<div class="line"><a name="l06041"></a><span class="lineno"> 6041</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, *old_out; <span class="comment">// output buffer (always 4 components)</span></div>
-<div class="line"><a name="l06042"></a><span class="lineno"> 6042</span>&#160; <span class="keywordtype">int</span> flags, bgindex, ratio, transparent, eflags, delay;</div>
-<div class="line"><a name="l06043"></a><span class="lineno"> 6043</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4];</div>
-<div class="line"><a name="l06044"></a><span class="lineno"> 6044</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lpal[256][4];</div>
-<div class="line"><a name="l06045"></a><span class="lineno"> 6045</span>&#160; stbi__gif_lzw codes[4096];</div>
-<div class="line"><a name="l06046"></a><span class="lineno"> 6046</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *color_table;</div>
-<div class="line"><a name="l06047"></a><span class="lineno"> 6047</span>&#160; <span class="keywordtype">int</span> parse, step;</div>
-<div class="line"><a name="l06048"></a><span class="lineno"> 6048</span>&#160; <span class="keywordtype">int</span> lflags;</div>
-<div class="line"><a name="l06049"></a><span class="lineno"> 6049</span>&#160; <span class="keywordtype">int</span> start_x, start_y;</div>
-<div class="line"><a name="l06050"></a><span class="lineno"> 6050</span>&#160; <span class="keywordtype">int</span> max_x, max_y;</div>
-<div class="line"><a name="l06051"></a><span class="lineno"> 6051</span>&#160; <span class="keywordtype">int</span> cur_x, cur_y;</div>
-<div class="line"><a name="l06052"></a><span class="lineno"> 6052</span>&#160; <span class="keywordtype">int</span> line_size;</div>
-<div class="line"><a name="l06053"></a><span class="lineno"> 6053</span>&#160;} stbi__gif;</div>
-<div class="line"><a name="l06054"></a><span class="lineno"> 6054</span>&#160;</div>
-<div class="line"><a name="l06055"></a><span class="lineno"> 6055</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test_raw(stbi__context *s)</div>
-<div class="line"><a name="l06056"></a><span class="lineno"> 6056</span>&#160;{</div>
-<div class="line"><a name="l06057"></a><span class="lineno"> 6057</span>&#160; <span class="keywordtype">int</span> sz;</div>
-<div class="line"><a name="l06058"></a><span class="lineno"> 6058</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;G&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;I&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;F&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;8&#39;</span>) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06059"></a><span class="lineno"> 6059</span>&#160; sz = stbi__get8(s);</div>
-<div class="line"><a name="l06060"></a><span class="lineno"> 6060</span>&#160; <span class="keywordflow">if</span> (sz != <span class="charliteral">&#39;9&#39;</span> &amp;&amp; sz != <span class="charliteral">&#39;7&#39;</span>) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06061"></a><span class="lineno"> 6061</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;a&#39;</span>) <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06062"></a><span class="lineno"> 6062</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06063"></a><span class="lineno"> 6063</span>&#160;}</div>
-<div class="line"><a name="l06064"></a><span class="lineno"> 6064</span>&#160;</div>
-<div class="line"><a name="l06065"></a><span class="lineno"> 6065</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test(stbi__context *s)</div>
-<div class="line"><a name="l06066"></a><span class="lineno"> 6066</span>&#160;{</div>
-<div class="line"><a name="l06067"></a><span class="lineno"> 6067</span>&#160; <span class="keywordtype">int</span> r = stbi__gif_test_raw(s);</div>
-<div class="line"><a name="l06068"></a><span class="lineno"> 6068</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06069"></a><span class="lineno"> 6069</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l06070"></a><span class="lineno"> 6070</span>&#160;}</div>
-<div class="line"><a name="l06071"></a><span class="lineno"> 6071</span>&#160;</div>
-<div class="line"><a name="l06072"></a><span class="lineno"> 6072</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__gif_parse_colortable(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4], <span class="keywordtype">int</span> num_entries, <span class="keywordtype">int</span> transp)</div>
-<div class="line"><a name="l06073"></a><span class="lineno"> 6073</span>&#160;{</div>
-<div class="line"><a name="l06074"></a><span class="lineno"> 6074</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l06075"></a><span class="lineno"> 6075</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; num_entries; ++i) {</div>
-<div class="line"><a name="l06076"></a><span class="lineno"> 6076</span>&#160; pal[i][2] = stbi__get8(s);</div>
-<div class="line"><a name="l06077"></a><span class="lineno"> 6077</span>&#160; pal[i][1] = stbi__get8(s);</div>
-<div class="line"><a name="l06078"></a><span class="lineno"> 6078</span>&#160; pal[i][0] = stbi__get8(s);</div>
-<div class="line"><a name="l06079"></a><span class="lineno"> 6079</span>&#160; pal[i][3] = transp == i ? 0 : 255;</div>
-<div class="line"><a name="l06080"></a><span class="lineno"> 6080</span>&#160; }</div>
-<div class="line"><a name="l06081"></a><span class="lineno"> 6081</span>&#160;}</div>
-<div class="line"><a name="l06082"></a><span class="lineno"> 6082</span>&#160;</div>
-<div class="line"><a name="l06083"></a><span class="lineno"> 6083</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_header(stbi__context *s, stbi__gif *g, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> is_info)</div>
-<div class="line"><a name="l06084"></a><span class="lineno"> 6084</span>&#160;{</div>
-<div class="line"><a name="l06085"></a><span class="lineno"> 6085</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> version;</div>
-<div class="line"><a name="l06086"></a><span class="lineno"> 6086</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;G&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;I&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;F&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;8&#39;</span>)</div>
-<div class="line"><a name="l06087"></a><span class="lineno"> 6087</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06088"></a><span class="lineno"> 6088</span>&#160;</div>
-<div class="line"><a name="l06089"></a><span class="lineno"> 6089</span>&#160; version = stbi__get8(s);</div>
-<div class="line"><a name="l06090"></a><span class="lineno"> 6090</span>&#160; <span class="keywordflow">if</span> (version != <span class="charliteral">&#39;7&#39;</span> &amp;&amp; version != <span class="charliteral">&#39;9&#39;</span>) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06091"></a><span class="lineno"> 6091</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;a&#39;</span>) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06092"></a><span class="lineno"> 6092</span>&#160;</div>
-<div class="line"><a name="l06093"></a><span class="lineno"> 6093</span>&#160; stbi__g_failure_reason = <span class="stringliteral">&quot;&quot;</span>;</div>
-<div class="line"><a name="l06094"></a><span class="lineno"> 6094</span>&#160; g-&gt;w = stbi__get16le(s);</div>
-<div class="line"><a name="l06095"></a><span class="lineno"> 6095</span>&#160; g-&gt;h = stbi__get16le(s);</div>
-<div class="line"><a name="l06096"></a><span class="lineno"> 6096</span>&#160; g-&gt;flags = stbi__get8(s);</div>
-<div class="line"><a name="l06097"></a><span class="lineno"> 6097</span>&#160; g-&gt;bgindex = stbi__get8(s);</div>
-<div class="line"><a name="l06098"></a><span class="lineno"> 6098</span>&#160; g-&gt;ratio = stbi__get8(s);</div>
-<div class="line"><a name="l06099"></a><span class="lineno"> 6099</span>&#160; g-&gt;transparent = -1;</div>
-<div class="line"><a name="l06100"></a><span class="lineno"> 6100</span>&#160;</div>
-<div class="line"><a name="l06101"></a><span class="lineno"> 6101</span>&#160; <span class="keywordflow">if</span> (comp != 0) *comp = 4; <span class="comment">// can&#39;t actually tell whether it&#39;s 3 or 4 until we parse the comments</span></div>
-<div class="line"><a name="l06102"></a><span class="lineno"> 6102</span>&#160;</div>
-<div class="line"><a name="l06103"></a><span class="lineno"> 6103</span>&#160; <span class="keywordflow">if</span> (is_info) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06104"></a><span class="lineno"> 6104</span>&#160;</div>
-<div class="line"><a name="l06105"></a><span class="lineno"> 6105</span>&#160; <span class="keywordflow">if</span> (g-&gt;flags &amp; 0x80)</div>
-<div class="line"><a name="l06106"></a><span class="lineno"> 6106</span>&#160; stbi__gif_parse_colortable(s,g-&gt;pal, 2 &lt;&lt; (g-&gt;flags &amp; 7), -1);</div>
-<div class="line"><a name="l06107"></a><span class="lineno"> 6107</span>&#160;</div>
-<div class="line"><a name="l06108"></a><span class="lineno"> 6108</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06109"></a><span class="lineno"> 6109</span>&#160;}</div>
-<div class="line"><a name="l06110"></a><span class="lineno"> 6110</span>&#160;</div>
-<div class="line"><a name="l06111"></a><span class="lineno"> 6111</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info_raw(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06112"></a><span class="lineno"> 6112</span>&#160;{</div>
-<div class="line"><a name="l06113"></a><span class="lineno"> 6113</span>&#160; stbi__gif* g = (stbi__gif*) stbi__malloc(<span class="keyword">sizeof</span>(stbi__gif));</div>
-<div class="line"><a name="l06114"></a><span class="lineno"> 6114</span>&#160; <span class="keywordflow">if</span> (!stbi__gif_header(s, g, comp, 1)) {</div>
-<div class="line"><a name="l06115"></a><span class="lineno"> 6115</span>&#160; STBI_FREE(g);</div>
-<div class="line"><a name="l06116"></a><span class="lineno"> 6116</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06117"></a><span class="lineno"> 6117</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06118"></a><span class="lineno"> 6118</span>&#160; }</div>
-<div class="line"><a name="l06119"></a><span class="lineno"> 6119</span>&#160; <span class="keywordflow">if</span> (x) *x = g-&gt;w;</div>
-<div class="line"><a name="l06120"></a><span class="lineno"> 6120</span>&#160; <span class="keywordflow">if</span> (y) *y = g-&gt;h;</div>
-<div class="line"><a name="l06121"></a><span class="lineno"> 6121</span>&#160; STBI_FREE(g);</div>
-<div class="line"><a name="l06122"></a><span class="lineno"> 6122</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06123"></a><span class="lineno"> 6123</span>&#160;}</div>
-<div class="line"><a name="l06124"></a><span class="lineno"> 6124</span>&#160;</div>
-<div class="line"><a name="l06125"></a><span class="lineno"> 6125</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)</div>
-<div class="line"><a name="l06126"></a><span class="lineno"> 6126</span>&#160;{</div>
-<div class="line"><a name="l06127"></a><span class="lineno"> 6127</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, *c;</div>
-<div class="line"><a name="l06128"></a><span class="lineno"> 6128</span>&#160;</div>
-<div class="line"><a name="l06129"></a><span class="lineno"> 6129</span>&#160; <span class="comment">// recurse to decode the prefixes, since the linked-list is backwards,</span></div>
-<div class="line"><a name="l06130"></a><span class="lineno"> 6130</span>&#160; <span class="comment">// and working backwards through an interleaved image would be nasty</span></div>
-<div class="line"><a name="l06131"></a><span class="lineno"> 6131</span>&#160; <span class="keywordflow">if</span> (g-&gt;codes[code].prefix &gt;= 0)</div>
-<div class="line"><a name="l06132"></a><span class="lineno"> 6132</span>&#160; stbi__out_gif_code(g, g-&gt;codes[code].prefix);</div>
-<div class="line"><a name="l06133"></a><span class="lineno"> 6133</span>&#160;</div>
-<div class="line"><a name="l06134"></a><span class="lineno"> 6134</span>&#160; <span class="keywordflow">if</span> (g-&gt;cur_y &gt;= g-&gt;max_y) <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l06135"></a><span class="lineno"> 6135</span>&#160;</div>
-<div class="line"><a name="l06136"></a><span class="lineno"> 6136</span>&#160; p = &amp;g-&gt;out[g-&gt;cur_x + g-&gt;cur_y];</div>
-<div class="line"><a name="l06137"></a><span class="lineno"> 6137</span>&#160; c = &amp;g-&gt;color_table[g-&gt;codes[code].suffix * 4];</div>
-<div class="line"><a name="l06138"></a><span class="lineno"> 6138</span>&#160;</div>
-<div class="line"><a name="l06139"></a><span class="lineno"> 6139</span>&#160; <span class="keywordflow">if</span> (c[3] &gt;= 128) {</div>
-<div class="line"><a name="l06140"></a><span class="lineno"> 6140</span>&#160; p[0] = c[2];</div>
-<div class="line"><a name="l06141"></a><span class="lineno"> 6141</span>&#160; p[1] = c[1];</div>
-<div class="line"><a name="l06142"></a><span class="lineno"> 6142</span>&#160; p[2] = c[0];</div>
-<div class="line"><a name="l06143"></a><span class="lineno"> 6143</span>&#160; p[3] = c[3];</div>
-<div class="line"><a name="l06144"></a><span class="lineno"> 6144</span>&#160; }</div>
-<div class="line"><a name="l06145"></a><span class="lineno"> 6145</span>&#160; g-&gt;cur_x += 4;</div>
-<div class="line"><a name="l06146"></a><span class="lineno"> 6146</span>&#160;</div>
-<div class="line"><a name="l06147"></a><span class="lineno"> 6147</span>&#160; <span class="keywordflow">if</span> (g-&gt;cur_x &gt;= g-&gt;max_x) {</div>
-<div class="line"><a name="l06148"></a><span class="lineno"> 6148</span>&#160; g-&gt;cur_x = g-&gt;start_x;</div>
-<div class="line"><a name="l06149"></a><span class="lineno"> 6149</span>&#160; g-&gt;cur_y += g-&gt;step;</div>
-<div class="line"><a name="l06150"></a><span class="lineno"> 6150</span>&#160;</div>
-<div class="line"><a name="l06151"></a><span class="lineno"> 6151</span>&#160; <span class="keywordflow">while</span> (g-&gt;cur_y &gt;= g-&gt;max_y &amp;&amp; g-&gt;parse &gt; 0) {</div>
-<div class="line"><a name="l06152"></a><span class="lineno"> 6152</span>&#160; g-&gt;step = (1 &lt;&lt; g-&gt;parse) * g-&gt;line_size;</div>
-<div class="line"><a name="l06153"></a><span class="lineno"> 6153</span>&#160; g-&gt;cur_y = g-&gt;start_y + (g-&gt;step &gt;&gt; 1);</div>
-<div class="line"><a name="l06154"></a><span class="lineno"> 6154</span>&#160; --g-&gt;parse;</div>
-<div class="line"><a name="l06155"></a><span class="lineno"> 6155</span>&#160; }</div>
-<div class="line"><a name="l06156"></a><span class="lineno"> 6156</span>&#160; }</div>
-<div class="line"><a name="l06157"></a><span class="lineno"> 6157</span>&#160;}</div>
-<div class="line"><a name="l06158"></a><span class="lineno"> 6158</span>&#160;</div>
-<div class="line"><a name="l06159"></a><span class="lineno"> 6159</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)</div>
-<div class="line"><a name="l06160"></a><span class="lineno"> 6160</span>&#160;{</div>
-<div class="line"><a name="l06161"></a><span class="lineno"> 6161</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lzw_cs;</div>
-<div class="line"><a name="l06162"></a><span class="lineno"> 6162</span>&#160; stbi__int32 len, init_code;</div>
-<div class="line"><a name="l06163"></a><span class="lineno"> 6163</span>&#160; stbi__uint32 first;</div>
-<div class="line"><a name="l06164"></a><span class="lineno"> 6164</span>&#160; stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;</div>
-<div class="line"><a name="l06165"></a><span class="lineno"> 6165</span>&#160; stbi__gif_lzw *p;</div>
-<div class="line"><a name="l06166"></a><span class="lineno"> 6166</span>&#160;</div>
-<div class="line"><a name="l06167"></a><span class="lineno"> 6167</span>&#160; lzw_cs = stbi__get8(s);</div>
-<div class="line"><a name="l06168"></a><span class="lineno"> 6168</span>&#160; <span class="keywordflow">if</span> (lzw_cs &gt; 12) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l06169"></a><span class="lineno"> 6169</span>&#160; clear = 1 &lt;&lt; lzw_cs;</div>
-<div class="line"><a name="l06170"></a><span class="lineno"> 6170</span>&#160; first = 1;</div>
-<div class="line"><a name="l06171"></a><span class="lineno"> 6171</span>&#160; codesize = lzw_cs + 1;</div>
-<div class="line"><a name="l06172"></a><span class="lineno"> 6172</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
-<div class="line"><a name="l06173"></a><span class="lineno"> 6173</span>&#160; bits = 0;</div>
-<div class="line"><a name="l06174"></a><span class="lineno"> 6174</span>&#160; valid_bits = 0;</div>
-<div class="line"><a name="l06175"></a><span class="lineno"> 6175</span>&#160; <span class="keywordflow">for</span> (init_code = 0; init_code &lt; clear; init_code++) {</div>
-<div class="line"><a name="l06176"></a><span class="lineno"> 6176</span>&#160; g-&gt;codes[init_code].prefix = -1;</div>
-<div class="line"><a name="l06177"></a><span class="lineno"> 6177</span>&#160; g-&gt;codes[init_code].first = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) init_code;</div>
-<div class="line"><a name="l06178"></a><span class="lineno"> 6178</span>&#160; g-&gt;codes[init_code].suffix = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) init_code;</div>
-<div class="line"><a name="l06179"></a><span class="lineno"> 6179</span>&#160; }</div>
-<div class="line"><a name="l06180"></a><span class="lineno"> 6180</span>&#160;</div>
-<div class="line"><a name="l06181"></a><span class="lineno"> 6181</span>&#160; <span class="comment">// support no starting clear code</span></div>
-<div class="line"><a name="l06182"></a><span class="lineno"> 6182</span>&#160; avail = clear+2;</div>
-<div class="line"><a name="l06183"></a><span class="lineno"> 6183</span>&#160; oldcode = -1;</div>
-<div class="line"><a name="l06184"></a><span class="lineno"> 6184</span>&#160;</div>
-<div class="line"><a name="l06185"></a><span class="lineno"> 6185</span>&#160; len = 0;</div>
-<div class="line"><a name="l06186"></a><span class="lineno"> 6186</span>&#160; <span class="keywordflow">for</span>(;;) {</div>
-<div class="line"><a name="l06187"></a><span class="lineno"> 6187</span>&#160; <span class="keywordflow">if</span> (valid_bits &lt; codesize) {</div>
-<div class="line"><a name="l06188"></a><span class="lineno"> 6188</span>&#160; <span class="keywordflow">if</span> (len == 0) {</div>
-<div class="line"><a name="l06189"></a><span class="lineno"> 6189</span>&#160; len = stbi__get8(s); <span class="comment">// start new block</span></div>
-<div class="line"><a name="l06190"></a><span class="lineno"> 6190</span>&#160; <span class="keywordflow">if</span> (len == 0)</div>
-<div class="line"><a name="l06191"></a><span class="lineno"> 6191</span>&#160; <span class="keywordflow">return</span> g-&gt;out;</div>
-<div class="line"><a name="l06192"></a><span class="lineno"> 6192</span>&#160; }</div>
-<div class="line"><a name="l06193"></a><span class="lineno"> 6193</span>&#160; --len;</div>
-<div class="line"><a name="l06194"></a><span class="lineno"> 6194</span>&#160; bits |= (stbi__int32) stbi__get8(s) &lt;&lt; valid_bits;</div>
-<div class="line"><a name="l06195"></a><span class="lineno"> 6195</span>&#160; valid_bits += 8;</div>
-<div class="line"><a name="l06196"></a><span class="lineno"> 6196</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06197"></a><span class="lineno"> 6197</span>&#160; stbi__int32 code = bits &amp; codemask;</div>
-<div class="line"><a name="l06198"></a><span class="lineno"> 6198</span>&#160; bits &gt;&gt;= codesize;</div>
-<div class="line"><a name="l06199"></a><span class="lineno"> 6199</span>&#160; valid_bits -= codesize;</div>
-<div class="line"><a name="l06200"></a><span class="lineno"> 6200</span>&#160; <span class="comment">// @OPTIMIZE: is there some way we can accelerate the non-clear path?</span></div>
-<div class="line"><a name="l06201"></a><span class="lineno"> 6201</span>&#160; <span class="keywordflow">if</span> (code == clear) { <span class="comment">// clear code</span></div>
-<div class="line"><a name="l06202"></a><span class="lineno"> 6202</span>&#160; codesize = lzw_cs + 1;</div>
-<div class="line"><a name="l06203"></a><span class="lineno"> 6203</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
-<div class="line"><a name="l06204"></a><span class="lineno"> 6204</span>&#160; avail = clear + 2;</div>
-<div class="line"><a name="l06205"></a><span class="lineno"> 6205</span>&#160; oldcode = -1;</div>
-<div class="line"><a name="l06206"></a><span class="lineno"> 6206</span>&#160; first = 0;</div>
-<div class="line"><a name="l06207"></a><span class="lineno"> 6207</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code == clear + 1) { <span class="comment">// end of stream code</span></div>
-<div class="line"><a name="l06208"></a><span class="lineno"> 6208</span>&#160; stbi__skip(s, len);</div>
-<div class="line"><a name="l06209"></a><span class="lineno"> 6209</span>&#160; <span class="keywordflow">while</span> ((len = stbi__get8(s)) &gt; 0)</div>
-<div class="line"><a name="l06210"></a><span class="lineno"> 6210</span>&#160; stbi__skip(s,len);</div>
-<div class="line"><a name="l06211"></a><span class="lineno"> 6211</span>&#160; <span class="keywordflow">return</span> g-&gt;out;</div>
-<div class="line"><a name="l06212"></a><span class="lineno"> 6212</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code &lt;= avail) {</div>
-<div class="line"><a name="l06213"></a><span class="lineno"> 6213</span>&#160; <span class="keywordflow">if</span> (first) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;no clear code&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l05912"></a><span class="lineno"> 5912</span>&#160; <span class="keywordflow">if</span> (info.hsz == 12) {</div>
+<div class="line"><a name="l05913"></a><span class="lineno"> 5913</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 24)</div>
+<div class="line"><a name="l05914"></a><span class="lineno"> 5914</span>&#160; psize = (info.offset - 14 - 24) / 3;</div>
+<div class="line"><a name="l05915"></a><span class="lineno"> 5915</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05916"></a><span class="lineno"> 5916</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 16)</div>
+<div class="line"><a name="l05917"></a><span class="lineno"> 5917</span>&#160; psize = (info.offset - 14 - info.hsz) &gt;&gt; 2;</div>
+<div class="line"><a name="l05918"></a><span class="lineno"> 5918</span>&#160; }</div>
+<div class="line"><a name="l05919"></a><span class="lineno"> 5919</span>&#160;</div>
+<div class="line"><a name="l05920"></a><span class="lineno"> 5920</span>&#160; s-&gt;img_n = ma ? 4 : 3;</div>
+<div class="line"><a name="l05921"></a><span class="lineno"> 5921</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp &gt;= 3) <span class="comment">// we can directly decode 3 or 4</span></div>
+<div class="line"><a name="l05922"></a><span class="lineno"> 5922</span>&#160; target = req_comp;</div>
+<div class="line"><a name="l05923"></a><span class="lineno"> 5923</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05924"></a><span class="lineno"> 5924</span>&#160; target = s-&gt;img_n; <span class="comment">// if they want monochrome, we&#39;ll post-convert</span></div>
+<div class="line"><a name="l05925"></a><span class="lineno"> 5925</span>&#160;</div>
+<div class="line"><a name="l05926"></a><span class="lineno"> 5926</span>&#160; <span class="comment">// sanity-check size</span></div>
+<div class="line"><a name="l05927"></a><span class="lineno"> 5927</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(target, s-&gt;img_x, s-&gt;img_y, 0))</div>
+<div class="line"><a name="l05928"></a><span class="lineno"> 5928</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
+<div class="line"><a name="l05929"></a><span class="lineno"> 5929</span>&#160;</div>
+<div class="line"><a name="l05930"></a><span class="lineno"> 5930</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(target, s-&gt;img_x, s-&gt;img_y, 0);</div>
+<div class="line"><a name="l05931"></a><span class="lineno"> 5931</span>&#160; <span class="keywordflow">if</span> (!out)</div>
+<div class="line"><a name="l05932"></a><span class="lineno"> 5932</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l05933"></a><span class="lineno"> 5933</span>&#160; <span class="keywordflow">if</span> (info.bpp &lt; 16) {</div>
+<div class="line"><a name="l05934"></a><span class="lineno"> 5934</span>&#160; <span class="keywordtype">int</span> z = 0;</div>
+<div class="line"><a name="l05935"></a><span class="lineno"> 5935</span>&#160; <span class="keywordflow">if</span> (psize == 0 || psize &gt; 256) {</div>
+<div class="line"><a name="l05936"></a><span class="lineno"> 5936</span>&#160; STBI_FREE(out);</div>
+<div class="line"><a name="l05937"></a><span class="lineno"> 5937</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;invalid&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
+<div class="line"><a name="l05938"></a><span class="lineno"> 5938</span>&#160; }</div>
+<div class="line"><a name="l05939"></a><span class="lineno"> 5939</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; psize; ++i) {</div>
+<div class="line"><a name="l05940"></a><span class="lineno"> 5940</span>&#160; pal[i][2] = stbi__get8(s);</div>
+<div class="line"><a name="l05941"></a><span class="lineno"> 5941</span>&#160; pal[i][1] = stbi__get8(s);</div>
+<div class="line"><a name="l05942"></a><span class="lineno"> 5942</span>&#160; pal[i][0] = stbi__get8(s);</div>
+<div class="line"><a name="l05943"></a><span class="lineno"> 5943</span>&#160; <span class="keywordflow">if</span> (info.hsz != 12)</div>
+<div class="line"><a name="l05944"></a><span class="lineno"> 5944</span>&#160; stbi__get8(s);</div>
+<div class="line"><a name="l05945"></a><span class="lineno"> 5945</span>&#160; pal[i][3] = 255;</div>
+<div class="line"><a name="l05946"></a><span class="lineno"> 5946</span>&#160; }</div>
+<div class="line"><a name="l05947"></a><span class="lineno"> 5947</span>&#160; stbi__skip(s, info.offset - 14 - info.hsz -</div>
+<div class="line"><a name="l05948"></a><span class="lineno"> 5948</span>&#160; psize * (info.hsz == 12 ? 3 : 4));</div>
+<div class="line"><a name="l05949"></a><span class="lineno"> 5949</span>&#160; <span class="keywordflow">if</span> (info.bpp == 4)</div>
+<div class="line"><a name="l05950"></a><span class="lineno"> 5950</span>&#160; width = (s-&gt;img_x + 1) &gt;&gt; 1;</div>
+<div class="line"><a name="l05951"></a><span class="lineno"> 5951</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 8)</div>
+<div class="line"><a name="l05952"></a><span class="lineno"> 5952</span>&#160; width = s-&gt;img_x;</div>
+<div class="line"><a name="l05953"></a><span class="lineno"> 5953</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05954"></a><span class="lineno"> 5954</span>&#160; STBI_FREE(out);</div>
+<div class="line"><a name="l05955"></a><span class="lineno"> 5955</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad bpp&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
+<div class="line"><a name="l05956"></a><span class="lineno"> 5956</span>&#160; }</div>
+<div class="line"><a name="l05957"></a><span class="lineno"> 5957</span>&#160; pad = (-width) &amp; 3;</div>
+<div class="line"><a name="l05958"></a><span class="lineno"> 5958</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; (int)s-&gt;img_y; ++j) {</div>
+<div class="line"><a name="l05959"></a><span class="lineno"> 5959</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (int)s-&gt;img_x; i += 2) {</div>
+<div class="line"><a name="l05960"></a><span class="lineno"> 5960</span>&#160; <span class="keywordtype">int</span> v = stbi__get8(s), v2 = 0;</div>
+<div class="line"><a name="l05961"></a><span class="lineno"> 5961</span>&#160; <span class="keywordflow">if</span> (info.bpp == 4) {</div>
+<div class="line"><a name="l05962"></a><span class="lineno"> 5962</span>&#160; v2 = v &amp; 15;</div>
+<div class="line"><a name="l05963"></a><span class="lineno"> 5963</span>&#160; v &gt;&gt;= 4;</div>
+<div class="line"><a name="l05964"></a><span class="lineno"> 5964</span>&#160; }</div>
+<div class="line"><a name="l05965"></a><span class="lineno"> 5965</span>&#160; out[z++] = pal[v][0];</div>
+<div class="line"><a name="l05966"></a><span class="lineno"> 5966</span>&#160; out[z++] = pal[v][1];</div>
+<div class="line"><a name="l05967"></a><span class="lineno"> 5967</span>&#160; out[z++] = pal[v][2];</div>
+<div class="line"><a name="l05968"></a><span class="lineno"> 5968</span>&#160; <span class="keywordflow">if</span> (target == 4)</div>
+<div class="line"><a name="l05969"></a><span class="lineno"> 5969</span>&#160; out[z++] = 255;</div>
+<div class="line"><a name="l05970"></a><span class="lineno"> 5970</span>&#160; <span class="keywordflow">if</span> (i + 1 == (<span class="keywordtype">int</span>)s-&gt;img_x)</div>
+<div class="line"><a name="l05971"></a><span class="lineno"> 5971</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l05972"></a><span class="lineno"> 5972</span>&#160; v = (info.bpp == 8) ? stbi__get8(s) : v2;</div>
+<div class="line"><a name="l05973"></a><span class="lineno"> 5973</span>&#160; out[z++] = pal[v][0];</div>
+<div class="line"><a name="l05974"></a><span class="lineno"> 5974</span>&#160; out[z++] = pal[v][1];</div>
+<div class="line"><a name="l05975"></a><span class="lineno"> 5975</span>&#160; out[z++] = pal[v][2];</div>
+<div class="line"><a name="l05976"></a><span class="lineno"> 5976</span>&#160; <span class="keywordflow">if</span> (target == 4)</div>
+<div class="line"><a name="l05977"></a><span class="lineno"> 5977</span>&#160; out[z++] = 255;</div>
+<div class="line"><a name="l05978"></a><span class="lineno"> 5978</span>&#160; }</div>
+<div class="line"><a name="l05979"></a><span class="lineno"> 5979</span>&#160; stbi__skip(s, pad);</div>
+<div class="line"><a name="l05980"></a><span class="lineno"> 5980</span>&#160; }</div>
+<div class="line"><a name="l05981"></a><span class="lineno"> 5981</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l05982"></a><span class="lineno"> 5982</span>&#160; <span class="keywordtype">int</span> rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0,</div>
+<div class="line"><a name="l05983"></a><span class="lineno"> 5983</span>&#160; gcount = 0, bcount = 0, acount = 0;</div>
+<div class="line"><a name="l05984"></a><span class="lineno"> 5984</span>&#160; <span class="keywordtype">int</span> z = 0;</div>
+<div class="line"><a name="l05985"></a><span class="lineno"> 5985</span>&#160; <span class="keywordtype">int</span> easy = 0;</div>
+<div class="line"><a name="l05986"></a><span class="lineno"> 5986</span>&#160; stbi__skip(s, info.offset - 14 - info.hsz);</div>
+<div class="line"><a name="l05987"></a><span class="lineno"> 5987</span>&#160; <span class="keywordflow">if</span> (info.bpp == 24)</div>
+<div class="line"><a name="l05988"></a><span class="lineno"> 5988</span>&#160; width = 3 * s-&gt;img_x;</div>
+<div class="line"><a name="l05989"></a><span class="lineno"> 5989</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 16)</div>
+<div class="line"><a name="l05990"></a><span class="lineno"> 5990</span>&#160; width = 2 * s-&gt;img_x;</div>
+<div class="line"><a name="l05991"></a><span class="lineno"> 5991</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* bpp = 32 and pad = 0 */</span></div>
+<div class="line"><a name="l05992"></a><span class="lineno"> 5992</span>&#160; width = 0;</div>
+<div class="line"><a name="l05993"></a><span class="lineno"> 5993</span>&#160; pad = (-width) &amp; 3;</div>
+<div class="line"><a name="l05994"></a><span class="lineno"> 5994</span>&#160; <span class="keywordflow">if</span> (info.bpp == 24) {</div>
+<div class="line"><a name="l05995"></a><span class="lineno"> 5995</span>&#160; easy = 1;</div>
+<div class="line"><a name="l05996"></a><span class="lineno"> 5996</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (info.bpp == 32) {</div>
+<div class="line"><a name="l05997"></a><span class="lineno"> 5997</span>&#160; <span class="keywordflow">if</span> (mb == 0xff &amp;&amp; mg == 0xff00 &amp;&amp; mr == 0x00ff0000 &amp;&amp;</div>
+<div class="line"><a name="l05998"></a><span class="lineno"> 5998</span>&#160; ma == 0xff000000)</div>
+<div class="line"><a name="l05999"></a><span class="lineno"> 5999</span>&#160; easy = 2;</div>
+<div class="line"><a name="l06000"></a><span class="lineno"> 6000</span>&#160; }</div>
+<div class="line"><a name="l06001"></a><span class="lineno"> 6001</span>&#160; <span class="keywordflow">if</span> (!easy) {</div>
+<div class="line"><a name="l06002"></a><span class="lineno"> 6002</span>&#160; <span class="keywordflow">if</span> (!mr || !mg || !mb) {</div>
+<div class="line"><a name="l06003"></a><span class="lineno"> 6003</span>&#160; STBI_FREE(out);</div>
+<div class="line"><a name="l06004"></a><span class="lineno"> 6004</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad masks&quot;</span>, <span class="stringliteral">&quot;Corrupt BMP&quot;</span>);</div>
+<div class="line"><a name="l06005"></a><span class="lineno"> 6005</span>&#160; }</div>
+<div class="line"><a name="l06006"></a><span class="lineno"> 6006</span>&#160; <span class="comment">// right shift amt to put high bit in position #7</span></div>
+<div class="line"><a name="l06007"></a><span class="lineno"> 6007</span>&#160; rshift = stbi__high_bit(mr) - 7;</div>
+<div class="line"><a name="l06008"></a><span class="lineno"> 6008</span>&#160; rcount = stbi__bitcount(mr);</div>
+<div class="line"><a name="l06009"></a><span class="lineno"> 6009</span>&#160; gshift = stbi__high_bit(mg) - 7;</div>
+<div class="line"><a name="l06010"></a><span class="lineno"> 6010</span>&#160; gcount = stbi__bitcount(mg);</div>
+<div class="line"><a name="l06011"></a><span class="lineno"> 6011</span>&#160; bshift = stbi__high_bit(mb) - 7;</div>
+<div class="line"><a name="l06012"></a><span class="lineno"> 6012</span>&#160; bcount = stbi__bitcount(mb);</div>
+<div class="line"><a name="l06013"></a><span class="lineno"> 6013</span>&#160; ashift = stbi__high_bit(ma) - 7;</div>
+<div class="line"><a name="l06014"></a><span class="lineno"> 6014</span>&#160; acount = stbi__bitcount(ma);</div>
+<div class="line"><a name="l06015"></a><span class="lineno"> 6015</span>&#160; }</div>
+<div class="line"><a name="l06016"></a><span class="lineno"> 6016</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; (int)s-&gt;img_y; ++j) {</div>
+<div class="line"><a name="l06017"></a><span class="lineno"> 6017</span>&#160; <span class="keywordflow">if</span> (easy) {</div>
+<div class="line"><a name="l06018"></a><span class="lineno"> 6018</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (int)s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l06019"></a><span class="lineno"> 6019</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> a;</div>
+<div class="line"><a name="l06020"></a><span class="lineno"> 6020</span>&#160; out[z + 2] = stbi__get8(s);</div>
+<div class="line"><a name="l06021"></a><span class="lineno"> 6021</span>&#160; out[z + 1] = stbi__get8(s);</div>
+<div class="line"><a name="l06022"></a><span class="lineno"> 6022</span>&#160; out[z + 0] = stbi__get8(s);</div>
+<div class="line"><a name="l06023"></a><span class="lineno"> 6023</span>&#160; z += 3;</div>
+<div class="line"><a name="l06024"></a><span class="lineno"> 6024</span>&#160; a = (easy == 2 ? stbi__get8(s) : 255);</div>
+<div class="line"><a name="l06025"></a><span class="lineno"> 6025</span>&#160; all_a |= a;</div>
+<div class="line"><a name="l06026"></a><span class="lineno"> 6026</span>&#160; <span class="keywordflow">if</span> (target == 4)</div>
+<div class="line"><a name="l06027"></a><span class="lineno"> 6027</span>&#160; out[z++] = a;</div>
+<div class="line"><a name="l06028"></a><span class="lineno"> 6028</span>&#160; }</div>
+<div class="line"><a name="l06029"></a><span class="lineno"> 6029</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06030"></a><span class="lineno"> 6030</span>&#160; <span class="keywordtype">int</span> bpp = info.bpp;</div>
+<div class="line"><a name="l06031"></a><span class="lineno"> 6031</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (int)s-&gt;img_x; ++i) {</div>
+<div class="line"><a name="l06032"></a><span class="lineno"> 6032</span>&#160; stbi__uint32 v = (bpp == 16 ? (stbi__uint32)stbi__get16le(s)</div>
+<div class="line"><a name="l06033"></a><span class="lineno"> 6033</span>&#160; : stbi__get32le(s));</div>
+<div class="line"><a name="l06034"></a><span class="lineno"> 6034</span>&#160; <span class="keywordtype">int</span> a;</div>
+<div class="line"><a name="l06035"></a><span class="lineno"> 6035</span>&#160; out[z++] = STBI__BYTECAST(</div>
+<div class="line"><a name="l06036"></a><span class="lineno"> 6036</span>&#160; stbi__shiftsigned(v &amp; mr, rshift, rcount));</div>
+<div class="line"><a name="l06037"></a><span class="lineno"> 6037</span>&#160; out[z++] = STBI__BYTECAST(</div>
+<div class="line"><a name="l06038"></a><span class="lineno"> 6038</span>&#160; stbi__shiftsigned(v &amp; mg, gshift, gcount));</div>
+<div class="line"><a name="l06039"></a><span class="lineno"> 6039</span>&#160; out[z++] = STBI__BYTECAST(</div>
+<div class="line"><a name="l06040"></a><span class="lineno"> 6040</span>&#160; stbi__shiftsigned(v &amp; mb, bshift, bcount));</div>
+<div class="line"><a name="l06041"></a><span class="lineno"> 6041</span>&#160; a = (ma ? stbi__shiftsigned(v &amp; ma, ashift, acount) : 255);</div>
+<div class="line"><a name="l06042"></a><span class="lineno"> 6042</span>&#160; all_a |= a;</div>
+<div class="line"><a name="l06043"></a><span class="lineno"> 6043</span>&#160; <span class="keywordflow">if</span> (target == 4)</div>
+<div class="line"><a name="l06044"></a><span class="lineno"> 6044</span>&#160; out[z++] = STBI__BYTECAST(a);</div>
+<div class="line"><a name="l06045"></a><span class="lineno"> 6045</span>&#160; }</div>
+<div class="line"><a name="l06046"></a><span class="lineno"> 6046</span>&#160; }</div>
+<div class="line"><a name="l06047"></a><span class="lineno"> 6047</span>&#160; stbi__skip(s, pad);</div>
+<div class="line"><a name="l06048"></a><span class="lineno"> 6048</span>&#160; }</div>
+<div class="line"><a name="l06049"></a><span class="lineno"> 6049</span>&#160; }</div>
+<div class="line"><a name="l06050"></a><span class="lineno"> 6050</span>&#160;</div>
+<div class="line"><a name="l06051"></a><span class="lineno"> 6051</span>&#160; <span class="comment">// if alpha channel is all 0s, replace with all 255s</span></div>
+<div class="line"><a name="l06052"></a><span class="lineno"> 6052</span>&#160; <span class="keywordflow">if</span> (target == 4 &amp;&amp; all_a == 0)</div>
+<div class="line"><a name="l06053"></a><span class="lineno"> 6053</span>&#160; <span class="keywordflow">for</span> (i = 4 * s-&gt;img_x * s-&gt;img_y - 1; i &gt;= 0; i -= 4)</div>
+<div class="line"><a name="l06054"></a><span class="lineno"> 6054</span>&#160; out[i] = 255;</div>
+<div class="line"><a name="l06055"></a><span class="lineno"> 6055</span>&#160;</div>
+<div class="line"><a name="l06056"></a><span class="lineno"> 6056</span>&#160; <span class="keywordflow">if</span> (flip_vertically) {</div>
+<div class="line"><a name="l06057"></a><span class="lineno"> 6057</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> t;</div>
+<div class="line"><a name="l06058"></a><span class="lineno"> 6058</span>&#160; <span class="keywordflow">for</span> (j = 0; j&lt;(int)s-&gt;img_y&gt;&gt; 1; ++j) {</div>
+<div class="line"><a name="l06059"></a><span class="lineno"> 6059</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p1 = out + j * s-&gt;img_x * target;</div>
+<div class="line"><a name="l06060"></a><span class="lineno"> 6060</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p2 = out + (s-&gt;img_y - 1 - j) * s-&gt;img_x * target;</div>
+<div class="line"><a name="l06061"></a><span class="lineno"> 6061</span>&#160; for (i = 0; i &lt; (int)s-&gt;img_x * target; ++i) {</div>
+<div class="line"><a name="l06062"></a><span class="lineno"> 6062</span>&#160; t = p1[i], p1[i] = p2[i], p2[i] = t;</div>
+<div class="line"><a name="l06063"></a><span class="lineno"> 6063</span>&#160; }</div>
+<div class="line"><a name="l06064"></a><span class="lineno"> 6064</span>&#160; }</div>
+<div class="line"><a name="l06065"></a><span class="lineno"> 6065</span>&#160; }</div>
+<div class="line"><a name="l06066"></a><span class="lineno"> 6066</span>&#160;</div>
+<div class="line"><a name="l06067"></a><span class="lineno"> 6067</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != target) {</div>
+<div class="line"><a name="l06068"></a><span class="lineno"> 6068</span>&#160; out = stbi__convert_format(out, target, req_comp, s-&gt;img_x, s-&gt;img_y);</div>
+<div class="line"><a name="l06069"></a><span class="lineno"> 6069</span>&#160; <span class="keywordflow">if</span> (out == NULL)</div>
+<div class="line"><a name="l06070"></a><span class="lineno"> 6070</span>&#160; <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
+<div class="line"><a name="l06071"></a><span class="lineno"> 6071</span>&#160; }</div>
+<div class="line"><a name="l06072"></a><span class="lineno"> 6072</span>&#160;</div>
+<div class="line"><a name="l06073"></a><span class="lineno"> 6073</span>&#160; *x = s-&gt;img_x;</div>
+<div class="line"><a name="l06074"></a><span class="lineno"> 6074</span>&#160; *y = s-&gt;img_y;</div>
+<div class="line"><a name="l06075"></a><span class="lineno"> 6075</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l06076"></a><span class="lineno"> 6076</span>&#160; *comp = s-&gt;img_n;</div>
+<div class="line"><a name="l06077"></a><span class="lineno"> 6077</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l06078"></a><span class="lineno"> 6078</span>&#160;}</div>
+<div class="line"><a name="l06079"></a><span class="lineno"> 6079</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l06080"></a><span class="lineno"> 6080</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l06081"></a><span class="lineno"> 6081</span>&#160;<span class="comment">// Targa Truevision - TGA</span></div>
+<div class="line"><a name="l06082"></a><span class="lineno"> 6082</span>&#160;<span class="comment">// by Jonathan Dummer</span></div>
+<div class="line"><a name="l06083"></a><span class="lineno"> 6083</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
+<div class="line"><a name="l06084"></a><span class="lineno"> 6084</span>&#160;<span class="preprocessor"></span><span class="comment">// returns STBI_rgb or whatever, 0 on error</span></div>
+<div class="line"><a name="l06085"></a><span class="lineno"> 6085</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_get_comp(<span class="keywordtype">int</span> bits_per_pixel, <span class="keywordtype">int</span> is_grey, <span class="keywordtype">int</span> *is_rgb16)</div>
+<div class="line"><a name="l06086"></a><span class="lineno"> 6086</span>&#160;{</div>
+<div class="line"><a name="l06087"></a><span class="lineno"> 6087</span>&#160; <span class="comment">// only RGB or RGBA (incl. 16bit) or grey allowed</span></div>
+<div class="line"><a name="l06088"></a><span class="lineno"> 6088</span>&#160; <span class="keywordflow">if</span> (is_rgb16)</div>
+<div class="line"><a name="l06089"></a><span class="lineno"> 6089</span>&#160; *is_rgb16 = 0;</div>
+<div class="line"><a name="l06090"></a><span class="lineno"> 6090</span>&#160; <span class="keywordflow">switch</span> (bits_per_pixel) {</div>
+<div class="line"><a name="l06091"></a><span class="lineno"> 6091</span>&#160; <span class="keywordflow">case</span> 8:</div>
+<div class="line"><a name="l06092"></a><span class="lineno"> 6092</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1eb95ca1fa7706bf732bf35a0ed40aa">STBI_grey</a>;</div>
+<div class="line"><a name="l06093"></a><span class="lineno"> 6093</span>&#160; <span class="keywordflow">case</span> 16:</div>
+<div class="line"><a name="l06094"></a><span class="lineno"> 6094</span>&#160; <span class="keywordflow">if</span> (is_grey)</div>
+<div class="line"><a name="l06095"></a><span class="lineno"> 6095</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baf5829d16d4cca6077465c5abd346e2f8">STBI_grey_alpha</a>;</div>
+<div class="line"><a name="l06096"></a><span class="lineno"> 6096</span>&#160; <span class="comment">// else: fall-through</span></div>
+<div class="line"><a name="l06097"></a><span class="lineno"> 6097</span>&#160; <span class="keywordflow">case</span> 15:</div>
+<div class="line"><a name="l06098"></a><span class="lineno"> 6098</span>&#160; <span class="keywordflow">if</span> (is_rgb16)</div>
+<div class="line"><a name="l06099"></a><span class="lineno"> 6099</span>&#160; *is_rgb16 = 1;</div>
+<div class="line"><a name="l06100"></a><span class="lineno"> 6100</span>&#160; <span class="keywordflow">return</span> <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>;</div>
+<div class="line"><a name="l06101"></a><span class="lineno"> 6101</span>&#160; <span class="keywordflow">case</span> 24: <span class="comment">// fall-through</span></div>
+<div class="line"><a name="l06102"></a><span class="lineno"> 6102</span>&#160; <span class="keywordflow">case</span> 32:</div>
+<div class="line"><a name="l06103"></a><span class="lineno"> 6103</span>&#160; <span class="keywordflow">return</span> bits_per_pixel / 8;</div>
+<div class="line"><a name="l06104"></a><span class="lineno"> 6104</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l06105"></a><span class="lineno"> 6105</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06106"></a><span class="lineno"> 6106</span>&#160; }</div>
+<div class="line"><a name="l06107"></a><span class="lineno"> 6107</span>&#160;}</div>
+<div class="line"><a name="l06108"></a><span class="lineno"> 6108</span>&#160;</div>
+<div class="line"><a name="l06109"></a><span class="lineno"> 6109</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l06110"></a><span class="lineno"> 6110</span>&#160;{</div>
+<div class="line"><a name="l06111"></a><span class="lineno"> 6111</span>&#160; <span class="keywordtype">int</span> tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel,</div>
+<div class="line"><a name="l06112"></a><span class="lineno"> 6112</span>&#160; tga_colormap_bpp;</div>
+<div class="line"><a name="l06113"></a><span class="lineno"> 6113</span>&#160; <span class="keywordtype">int</span> sz, tga_colormap_type;</div>
+<div class="line"><a name="l06114"></a><span class="lineno"> 6114</span>&#160; stbi__get8(s); <span class="comment">// discard Offset</span></div>
+<div class="line"><a name="l06115"></a><span class="lineno"> 6115</span>&#160; tga_colormap_type = stbi__get8(s); <span class="comment">// colormap type</span></div>
+<div class="line"><a name="l06116"></a><span class="lineno"> 6116</span>&#160; <span class="keywordflow">if</span> (tga_colormap_type &gt; 1) {</div>
+<div class="line"><a name="l06117"></a><span class="lineno"> 6117</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06118"></a><span class="lineno"> 6118</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// only RGB or indexed allowed</span></div>
+<div class="line"><a name="l06119"></a><span class="lineno"> 6119</span>&#160; }</div>
+<div class="line"><a name="l06120"></a><span class="lineno"> 6120</span>&#160; tga_image_type = stbi__get8(s); <span class="comment">// image type</span></div>
+<div class="line"><a name="l06121"></a><span class="lineno"> 6121</span>&#160; <span class="keywordflow">if</span> (tga_colormap_type == 1) { <span class="comment">// colormapped (paletted) image</span></div>
+<div class="line"><a name="l06122"></a><span class="lineno"> 6122</span>&#160; <span class="keywordflow">if</span> (tga_image_type != 1 &amp;&amp; tga_image_type != 9) {</div>
+<div class="line"><a name="l06123"></a><span class="lineno"> 6123</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06124"></a><span class="lineno"> 6124</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06125"></a><span class="lineno"> 6125</span>&#160; }</div>
+<div class="line"><a name="l06126"></a><span class="lineno"> 6126</span>&#160; stbi__skip(</div>
+<div class="line"><a name="l06127"></a><span class="lineno"> 6127</span>&#160; s, 4); <span class="comment">// skip index of first colormap entry and number of entries</span></div>
+<div class="line"><a name="l06128"></a><span class="lineno"> 6128</span>&#160; sz = stbi__get8(s); <span class="comment">// check bits per palette color entry</span></div>
+<div class="line"><a name="l06129"></a><span class="lineno"> 6129</span>&#160; <span class="keywordflow">if</span> ((sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32)) {</div>
+<div class="line"><a name="l06130"></a><span class="lineno"> 6130</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06131"></a><span class="lineno"> 6131</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06132"></a><span class="lineno"> 6132</span>&#160; }</div>
+<div class="line"><a name="l06133"></a><span class="lineno"> 6133</span>&#160; stbi__skip(s, 4); <span class="comment">// skip image x and y origin</span></div>
+<div class="line"><a name="l06134"></a><span class="lineno"> 6134</span>&#160; tga_colormap_bpp = sz;</div>
+<div class="line"><a name="l06135"></a><span class="lineno"> 6135</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// &quot;normal&quot; image w/o colormap - only RGB or grey allowed, +/- RLE</span></div>
+<div class="line"><a name="l06136"></a><span class="lineno"> 6136</span>&#160; <span class="keywordflow">if</span> ((tga_image_type != 2) &amp;&amp; (tga_image_type != 3) &amp;&amp;</div>
+<div class="line"><a name="l06137"></a><span class="lineno"> 6137</span>&#160; (tga_image_type != 10) &amp;&amp; (tga_image_type != 11)) {</div>
+<div class="line"><a name="l06138"></a><span class="lineno"> 6138</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06139"></a><span class="lineno"> 6139</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// only RGB or grey allowed, +/- RLE</span></div>
+<div class="line"><a name="l06140"></a><span class="lineno"> 6140</span>&#160; }</div>
+<div class="line"><a name="l06141"></a><span class="lineno"> 6141</span>&#160; stbi__skip(s, 9); <span class="comment">// skip colormap specification and image x/y origin</span></div>
+<div class="line"><a name="l06142"></a><span class="lineno"> 6142</span>&#160; tga_colormap_bpp = 0;</div>
+<div class="line"><a name="l06143"></a><span class="lineno"> 6143</span>&#160; }</div>
+<div class="line"><a name="l06144"></a><span class="lineno"> 6144</span>&#160; tga_w = stbi__get16le(s);</div>
+<div class="line"><a name="l06145"></a><span class="lineno"> 6145</span>&#160; <span class="keywordflow">if</span> (tga_w &lt; 1) {</div>
+<div class="line"><a name="l06146"></a><span class="lineno"> 6146</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06147"></a><span class="lineno"> 6147</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// test width</span></div>
+<div class="line"><a name="l06148"></a><span class="lineno"> 6148</span>&#160; }</div>
+<div class="line"><a name="l06149"></a><span class="lineno"> 6149</span>&#160; tga_h = stbi__get16le(s);</div>
+<div class="line"><a name="l06150"></a><span class="lineno"> 6150</span>&#160; <span class="keywordflow">if</span> (tga_h &lt; 1) {</div>
+<div class="line"><a name="l06151"></a><span class="lineno"> 6151</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06152"></a><span class="lineno"> 6152</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// test height</span></div>
+<div class="line"><a name="l06153"></a><span class="lineno"> 6153</span>&#160; }</div>
+<div class="line"><a name="l06154"></a><span class="lineno"> 6154</span>&#160; tga_bits_per_pixel = stbi__get8(s); <span class="comment">// bits per pixel</span></div>
+<div class="line"><a name="l06155"></a><span class="lineno"> 6155</span>&#160; stbi__get8(s); <span class="comment">// ignore alpha bits</span></div>
+<div class="line"><a name="l06156"></a><span class="lineno"> 6156</span>&#160; <span class="keywordflow">if</span> (tga_colormap_bpp != 0) {</div>
+<div class="line"><a name="l06157"></a><span class="lineno"> 6157</span>&#160; <span class="keywordflow">if</span> ((tga_bits_per_pixel != 8) &amp;&amp; (tga_bits_per_pixel != 16)) {</div>
+<div class="line"><a name="l06158"></a><span class="lineno"> 6158</span>&#160; <span class="comment">// when using a colormap, tga_bits_per_pixel is the size of the</span></div>
+<div class="line"><a name="l06159"></a><span class="lineno"> 6159</span>&#160; <span class="comment">// indexes I don&#39;t think anything but 8 or 16bit indexes makes sense</span></div>
+<div class="line"><a name="l06160"></a><span class="lineno"> 6160</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06161"></a><span class="lineno"> 6161</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06162"></a><span class="lineno"> 6162</span>&#160; }</div>
+<div class="line"><a name="l06163"></a><span class="lineno"> 6163</span>&#160; tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);</div>
+<div class="line"><a name="l06164"></a><span class="lineno"> 6164</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06165"></a><span class="lineno"> 6165</span>&#160; tga_comp = stbi__tga_get_comp(</div>
+<div class="line"><a name="l06166"></a><span class="lineno"> 6166</span>&#160; tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11),</div>
+<div class="line"><a name="l06167"></a><span class="lineno"> 6167</span>&#160; NULL);</div>
+<div class="line"><a name="l06168"></a><span class="lineno"> 6168</span>&#160; }</div>
+<div class="line"><a name="l06169"></a><span class="lineno"> 6169</span>&#160; <span class="keywordflow">if</span> (!tga_comp) {</div>
+<div class="line"><a name="l06170"></a><span class="lineno"> 6170</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06171"></a><span class="lineno"> 6171</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06172"></a><span class="lineno"> 6172</span>&#160; }</div>
+<div class="line"><a name="l06173"></a><span class="lineno"> 6173</span>&#160; <span class="keywordflow">if</span> (x)</div>
+<div class="line"><a name="l06174"></a><span class="lineno"> 6174</span>&#160; *x = tga_w;</div>
+<div class="line"><a name="l06175"></a><span class="lineno"> 6175</span>&#160; <span class="keywordflow">if</span> (y)</div>
+<div class="line"><a name="l06176"></a><span class="lineno"> 6176</span>&#160; *y = tga_h;</div>
+<div class="line"><a name="l06177"></a><span class="lineno"> 6177</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l06178"></a><span class="lineno"> 6178</span>&#160; *comp = tga_comp;</div>
+<div class="line"><a name="l06179"></a><span class="lineno"> 6179</span>&#160; <span class="keywordflow">return</span> 1; <span class="comment">// seems to have passed everything</span></div>
+<div class="line"><a name="l06180"></a><span class="lineno"> 6180</span>&#160;}</div>
+<div class="line"><a name="l06181"></a><span class="lineno"> 6181</span>&#160;</div>
+<div class="line"><a name="l06182"></a><span class="lineno"> 6182</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__tga_test(stbi__context *s)</div>
+<div class="line"><a name="l06183"></a><span class="lineno"> 6183</span>&#160;{</div>
+<div class="line"><a name="l06184"></a><span class="lineno"> 6184</span>&#160; <span class="keywordtype">int</span> res = 0;</div>
+<div class="line"><a name="l06185"></a><span class="lineno"> 6185</span>&#160; <span class="keywordtype">int</span> sz, tga_color_type;</div>
+<div class="line"><a name="l06186"></a><span class="lineno"> 6186</span>&#160; stbi__get8(s); <span class="comment">// discard Offset</span></div>
+<div class="line"><a name="l06187"></a><span class="lineno"> 6187</span>&#160; tga_color_type = stbi__get8(s); <span class="comment">// color type</span></div>
+<div class="line"><a name="l06188"></a><span class="lineno"> 6188</span>&#160; <span class="keywordflow">if</span> (tga_color_type &gt; 1)</div>
+<div class="line"><a name="l06189"></a><span class="lineno"> 6189</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// only RGB or indexed allowed</span></div>
+<div class="line"><a name="l06190"></a><span class="lineno"> 6190</span>&#160; sz = stbi__get8(s); <span class="comment">// image type</span></div>
+<div class="line"><a name="l06191"></a><span class="lineno"> 6191</span>&#160; <span class="keywordflow">if</span> (tga_color_type == 1) { <span class="comment">// colormapped (paletted) image</span></div>
+<div class="line"><a name="l06192"></a><span class="lineno"> 6192</span>&#160; <span class="keywordflow">if</span> (sz != 1 &amp;&amp; sz != 9)</div>
+<div class="line"><a name="l06193"></a><span class="lineno"> 6193</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// colortype 1 demands image type 1 or 9</span></div>
+<div class="line"><a name="l06194"></a><span class="lineno"> 6194</span>&#160; stbi__skip(</div>
+<div class="line"><a name="l06195"></a><span class="lineno"> 6195</span>&#160; s, 4); <span class="comment">// skip index of first colormap entry and number of entries</span></div>
+<div class="line"><a name="l06196"></a><span class="lineno"> 6196</span>&#160; sz = stbi__get8(s); <span class="comment">// check bits per palette color entry</span></div>
+<div class="line"><a name="l06197"></a><span class="lineno"> 6197</span>&#160; <span class="keywordflow">if</span> ((sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32))</div>
+<div class="line"><a name="l06198"></a><span class="lineno"> 6198</span>&#160; <span class="keywordflow">goto</span> errorEnd;</div>
+<div class="line"><a name="l06199"></a><span class="lineno"> 6199</span>&#160; stbi__skip(s, 4); <span class="comment">// skip image x and y origin</span></div>
+<div class="line"><a name="l06200"></a><span class="lineno"> 6200</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// &quot;normal&quot; image w/o colormap</span></div>
+<div class="line"><a name="l06201"></a><span class="lineno"> 6201</span>&#160; <span class="keywordflow">if</span> ((sz != 2) &amp;&amp; (sz != 3) &amp;&amp; (sz != 10) &amp;&amp; (sz != 11))</div>
+<div class="line"><a name="l06202"></a><span class="lineno"> 6202</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// only RGB or grey allowed, +/- RLE</span></div>
+<div class="line"><a name="l06203"></a><span class="lineno"> 6203</span>&#160; stbi__skip(s, 9); <span class="comment">// skip colormap specification and image x/y origin</span></div>
+<div class="line"><a name="l06204"></a><span class="lineno"> 6204</span>&#160; }</div>
+<div class="line"><a name="l06205"></a><span class="lineno"> 6205</span>&#160; <span class="keywordflow">if</span> (stbi__get16le(s) &lt; 1)</div>
+<div class="line"><a name="l06206"></a><span class="lineno"> 6206</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// test width</span></div>
+<div class="line"><a name="l06207"></a><span class="lineno"> 6207</span>&#160; <span class="keywordflow">if</span> (stbi__get16le(s) &lt; 1)</div>
+<div class="line"><a name="l06208"></a><span class="lineno"> 6208</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// test height</span></div>
+<div class="line"><a name="l06209"></a><span class="lineno"> 6209</span>&#160; sz = stbi__get8(s); <span class="comment">// bits per pixel</span></div>
+<div class="line"><a name="l06210"></a><span class="lineno"> 6210</span>&#160; <span class="keywordflow">if</span> ((tga_color_type == 1) &amp;&amp; (sz != 8) &amp;&amp; (sz != 16))</div>
+<div class="line"><a name="l06211"></a><span class="lineno"> 6211</span>&#160; <span class="keywordflow">goto</span> errorEnd; <span class="comment">// for colormapped images, bpp is size of an index</span></div>
+<div class="line"><a name="l06212"></a><span class="lineno"> 6212</span>&#160; <span class="keywordflow">if</span> ((sz != 8) &amp;&amp; (sz != 15) &amp;&amp; (sz != 16) &amp;&amp; (sz != 24) &amp;&amp; (sz != 32))</div>
+<div class="line"><a name="l06213"></a><span class="lineno"> 6213</span>&#160; <span class="keywordflow">goto</span> errorEnd;</div>
<div class="line"><a name="l06214"></a><span class="lineno"> 6214</span>&#160;</div>
-<div class="line"><a name="l06215"></a><span class="lineno"> 6215</span>&#160; <span class="keywordflow">if</span> (oldcode &gt;= 0) {</div>
-<div class="line"><a name="l06216"></a><span class="lineno"> 6216</span>&#160; p = &amp;g-&gt;codes[avail++];</div>
-<div class="line"><a name="l06217"></a><span class="lineno"> 6217</span>&#160; <span class="keywordflow">if</span> (avail &gt; 4096) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too many codes&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06218"></a><span class="lineno"> 6218</span>&#160; p-&gt;prefix = (stbi__int16) oldcode;</div>
-<div class="line"><a name="l06219"></a><span class="lineno"> 6219</span>&#160; p-&gt;first = g-&gt;codes[oldcode].first;</div>
-<div class="line"><a name="l06220"></a><span class="lineno"> 6220</span>&#160; p-&gt;suffix = (code == avail) ? p-&gt;first : g-&gt;codes[code].first;</div>
-<div class="line"><a name="l06221"></a><span class="lineno"> 6221</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code == avail)</div>
-<div class="line"><a name="l06222"></a><span class="lineno"> 6222</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;illegal code in raster&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06223"></a><span class="lineno"> 6223</span>&#160;</div>
-<div class="line"><a name="l06224"></a><span class="lineno"> 6224</span>&#160; stbi__out_gif_code(g, (stbi__uint16) code);</div>
-<div class="line"><a name="l06225"></a><span class="lineno"> 6225</span>&#160;</div>
-<div class="line"><a name="l06226"></a><span class="lineno"> 6226</span>&#160; <span class="keywordflow">if</span> ((avail &amp; codemask) == 0 &amp;&amp; avail &lt;= 0x0FFF) {</div>
-<div class="line"><a name="l06227"></a><span class="lineno"> 6227</span>&#160; codesize++;</div>
-<div class="line"><a name="l06228"></a><span class="lineno"> 6228</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
-<div class="line"><a name="l06229"></a><span class="lineno"> 6229</span>&#160; }</div>
-<div class="line"><a name="l06230"></a><span class="lineno"> 6230</span>&#160;</div>
-<div class="line"><a name="l06231"></a><span class="lineno"> 6231</span>&#160; oldcode = code;</div>
-<div class="line"><a name="l06232"></a><span class="lineno"> 6232</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06233"></a><span class="lineno"> 6233</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;illegal code in raster&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06234"></a><span class="lineno"> 6234</span>&#160; }</div>
-<div class="line"><a name="l06235"></a><span class="lineno"> 6235</span>&#160; }</div>
-<div class="line"><a name="l06236"></a><span class="lineno"> 6236</span>&#160; }</div>
-<div class="line"><a name="l06237"></a><span class="lineno"> 6237</span>&#160;}</div>
-<div class="line"><a name="l06238"></a><span class="lineno"> 6238</span>&#160;</div>
-<div class="line"><a name="l06239"></a><span class="lineno"> 6239</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__fill_gif_background(stbi__gif *g, <span class="keywordtype">int</span> x0, <span class="keywordtype">int</span> y0, <span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1)</div>
-<div class="line"><a name="l06240"></a><span class="lineno"> 6240</span>&#160;{</div>
-<div class="line"><a name="l06241"></a><span class="lineno"> 6241</span>&#160; <span class="keywordtype">int</span> x, y;</div>
-<div class="line"><a name="l06242"></a><span class="lineno"> 6242</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *c = g-&gt;pal[g-&gt;bgindex];</div>
-<div class="line"><a name="l06243"></a><span class="lineno"> 6243</span>&#160; <span class="keywordflow">for</span> (y = y0; y &lt; y1; y += 4 * g-&gt;w) {</div>
-<div class="line"><a name="l06244"></a><span class="lineno"> 6244</span>&#160; <span class="keywordflow">for</span> (x = x0; x &lt; x1; x += 4) {</div>
-<div class="line"><a name="l06245"></a><span class="lineno"> 6245</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = &amp;g-&gt;out[y + x];</div>
-<div class="line"><a name="l06246"></a><span class="lineno"> 6246</span>&#160; p[0] = c[2];</div>
-<div class="line"><a name="l06247"></a><span class="lineno"> 6247</span>&#160; p[1] = c[1];</div>
-<div class="line"><a name="l06248"></a><span class="lineno"> 6248</span>&#160; p[2] = c[0];</div>
-<div class="line"><a name="l06249"></a><span class="lineno"> 6249</span>&#160; p[3] = 0;</div>
-<div class="line"><a name="l06250"></a><span class="lineno"> 6250</span>&#160; }</div>
-<div class="line"><a name="l06251"></a><span class="lineno"> 6251</span>&#160; }</div>
-<div class="line"><a name="l06252"></a><span class="lineno"> 6252</span>&#160;}</div>
-<div class="line"><a name="l06253"></a><span class="lineno"> 6253</span>&#160;</div>
-<div class="line"><a name="l06254"></a><span class="lineno"> 6254</span>&#160;<span class="comment">// this function is designed to support animated gifs, although stb_image doesn&#39;t support it</span></div>
-<div class="line"><a name="l06255"></a><span class="lineno"> 6255</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__gif_load_next(stbi__context *s, stbi__gif *g, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp)</div>
-<div class="line"><a name="l06256"></a><span class="lineno"> 6256</span>&#160;{</div>
-<div class="line"><a name="l06257"></a><span class="lineno"> 6257</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l06258"></a><span class="lineno"> 6258</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *prev_out = 0;</div>
-<div class="line"><a name="l06259"></a><span class="lineno"> 6259</span>&#160;</div>
-<div class="line"><a name="l06260"></a><span class="lineno"> 6260</span>&#160; <span class="keywordflow">if</span> (g-&gt;out == 0 &amp;&amp; !stbi__gif_header(s, g, comp,0))</div>
-<div class="line"><a name="l06261"></a><span class="lineno"> 6261</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// stbi__g_failure_reason set by stbi__gif_header</span></div>
-<div class="line"><a name="l06262"></a><span class="lineno"> 6262</span>&#160;</div>
-<div class="line"><a name="l06263"></a><span class="lineno"> 6263</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(g-&gt;w, g-&gt;h, 4, 0))</div>
-<div class="line"><a name="l06264"></a><span class="lineno"> 6264</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;GIF too large&quot;</span>);</div>
-<div class="line"><a name="l06265"></a><span class="lineno"> 6265</span>&#160;</div>
-<div class="line"><a name="l06266"></a><span class="lineno"> 6266</span>&#160; prev_out = g-&gt;out;</div>
-<div class="line"><a name="l06267"></a><span class="lineno"> 6267</span>&#160; g-&gt;out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(4, g-&gt;w, g-&gt;h, 0);</div>
-<div class="line"><a name="l06268"></a><span class="lineno"> 6268</span>&#160; <span class="keywordflow">if</span> (g-&gt;out == 0) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l06269"></a><span class="lineno"> 6269</span>&#160;</div>
-<div class="line"><a name="l06270"></a><span class="lineno"> 6270</span>&#160; <span class="keywordflow">switch</span> ((g-&gt;eflags &amp; 0x1C) &gt;&gt; 2) {</div>
-<div class="line"><a name="l06271"></a><span class="lineno"> 6271</span>&#160; <span class="keywordflow">case</span> 0: <span class="comment">// unspecified (also always used on 1st frame)</span></div>
-<div class="line"><a name="l06272"></a><span class="lineno"> 6272</span>&#160; stbi__fill_gif_background(g, 0, 0, 4 * g-&gt;w, 4 * g-&gt;w * g-&gt;h);</div>
-<div class="line"><a name="l06273"></a><span class="lineno"> 6273</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06274"></a><span class="lineno"> 6274</span>&#160; <span class="keywordflow">case</span> 1: <span class="comment">// do not dispose</span></div>
-<div class="line"><a name="l06275"></a><span class="lineno"> 6275</span>&#160; <span class="keywordflow">if</span> (prev_out) memcpy(g-&gt;out, prev_out, 4 * g-&gt;w * g-&gt;h);</div>
-<div class="line"><a name="l06276"></a><span class="lineno"> 6276</span>&#160; g-&gt;old_out = prev_out;</div>
-<div class="line"><a name="l06277"></a><span class="lineno"> 6277</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06278"></a><span class="lineno"> 6278</span>&#160; <span class="keywordflow">case</span> 2: <span class="comment">// dispose to background</span></div>
-<div class="line"><a name="l06279"></a><span class="lineno"> 6279</span>&#160; <span class="keywordflow">if</span> (prev_out) memcpy(g-&gt;out, prev_out, 4 * g-&gt;w * g-&gt;h);</div>
-<div class="line"><a name="l06280"></a><span class="lineno"> 6280</span>&#160; stbi__fill_gif_background(g, g-&gt;start_x, g-&gt;start_y, g-&gt;max_x, g-&gt;max_y);</div>
-<div class="line"><a name="l06281"></a><span class="lineno"> 6281</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06282"></a><span class="lineno"> 6282</span>&#160; <span class="keywordflow">case</span> 3: <span class="comment">// dispose to previous</span></div>
-<div class="line"><a name="l06283"></a><span class="lineno"> 6283</span>&#160; <span class="keywordflow">if</span> (g-&gt;old_out) {</div>
-<div class="line"><a name="l06284"></a><span class="lineno"> 6284</span>&#160; <span class="keywordflow">for</span> (i = g-&gt;start_y; i &lt; g-&gt;max_y; i += 4 * g-&gt;w)</div>
-<div class="line"><a name="l06285"></a><span class="lineno"> 6285</span>&#160; memcpy(&amp;g-&gt;out[i + g-&gt;start_x], &amp;g-&gt;old_out[i + g-&gt;start_x], g-&gt;max_x - g-&gt;start_x);</div>
-<div class="line"><a name="l06286"></a><span class="lineno"> 6286</span>&#160; }</div>
-<div class="line"><a name="l06287"></a><span class="lineno"> 6287</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06288"></a><span class="lineno"> 6288</span>&#160; }</div>
-<div class="line"><a name="l06289"></a><span class="lineno"> 6289</span>&#160;</div>
-<div class="line"><a name="l06290"></a><span class="lineno"> 6290</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
-<div class="line"><a name="l06291"></a><span class="lineno"> 6291</span>&#160; <span class="keywordflow">switch</span> (stbi__get8(s)) {</div>
-<div class="line"><a name="l06292"></a><span class="lineno"> 6292</span>&#160; <span class="keywordflow">case</span> 0x2C: <span class="comment">/* Image Descriptor */</span></div>
-<div class="line"><a name="l06293"></a><span class="lineno"> 6293</span>&#160; {</div>
-<div class="line"><a name="l06294"></a><span class="lineno"> 6294</span>&#160; <span class="keywordtype">int</span> prev_trans = -1;</div>
-<div class="line"><a name="l06295"></a><span class="lineno"> 6295</span>&#160; stbi__int32 x, y, w, h;</div>
-<div class="line"><a name="l06296"></a><span class="lineno"> 6296</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *o;</div>
+<div class="line"><a name="l06215"></a><span class="lineno"> 6215</span>&#160; res = 1; <span class="comment">// if we got this far, everything&#39;s good and we can return 1</span></div>
+<div class="line"><a name="l06216"></a><span class="lineno"> 6216</span>&#160; <span class="comment">// instead of 0</span></div>
+<div class="line"><a name="l06217"></a><span class="lineno"> 6217</span>&#160;</div>
+<div class="line"><a name="l06218"></a><span class="lineno"> 6218</span>&#160;errorEnd:</div>
+<div class="line"><a name="l06219"></a><span class="lineno"> 6219</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06220"></a><span class="lineno"> 6220</span>&#160; <span class="keywordflow">return</span> res;</div>
+<div class="line"><a name="l06221"></a><span class="lineno"> 6221</span>&#160;}</div>
+<div class="line"><a name="l06222"></a><span class="lineno"> 6222</span>&#160;</div>
+<div class="line"><a name="l06223"></a><span class="lineno"> 6223</span>&#160;<span class="comment">// read 16bit value and convert to 24bit RGB</span></div>
+<div class="line"><a name="l06224"></a><span class="lineno"> 6224</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__tga_read_rgb16(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out)</div>
+<div class="line"><a name="l06225"></a><span class="lineno"> 6225</span>&#160;{</div>
+<div class="line"><a name="l06226"></a><span class="lineno"> 6226</span>&#160; stbi__uint16 px = (stbi__uint16)stbi__get16le(s);</div>
+<div class="line"><a name="l06227"></a><span class="lineno"> 6227</span>&#160; stbi__uint16 fiveBitMask = 31;</div>
+<div class="line"><a name="l06228"></a><span class="lineno"> 6228</span>&#160; <span class="comment">// we have 3 channels with 5bits each</span></div>
+<div class="line"><a name="l06229"></a><span class="lineno"> 6229</span>&#160; <span class="keywordtype">int</span> r = (px &gt;&gt; 10) &amp; fiveBitMask;</div>
+<div class="line"><a name="l06230"></a><span class="lineno"> 6230</span>&#160; <span class="keywordtype">int</span> g = (px &gt;&gt; 5) &amp; fiveBitMask;</div>
+<div class="line"><a name="l06231"></a><span class="lineno"> 6231</span>&#160; <span class="keywordtype">int</span> b = px &amp; fiveBitMask;</div>
+<div class="line"><a name="l06232"></a><span class="lineno"> 6232</span>&#160; <span class="comment">// Note that this saves the data in RGB(A) order, so it doesn&#39;t need to be</span></div>
+<div class="line"><a name="l06233"></a><span class="lineno"> 6233</span>&#160; <span class="comment">// swapped later</span></div>
+<div class="line"><a name="l06234"></a><span class="lineno"> 6234</span>&#160; out[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((r * 255) / 31);</div>
+<div class="line"><a name="l06235"></a><span class="lineno"> 6235</span>&#160; out[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((g * 255) / 31);</div>
+<div class="line"><a name="l06236"></a><span class="lineno"> 6236</span>&#160; out[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)((b * 255) / 31);</div>
+<div class="line"><a name="l06237"></a><span class="lineno"> 6237</span>&#160;</div>
+<div class="line"><a name="l06238"></a><span class="lineno"> 6238</span>&#160; <span class="comment">// some people claim that the most significant bit might be used for alpha</span></div>
+<div class="line"><a name="l06239"></a><span class="lineno"> 6239</span>&#160; <span class="comment">// (possibly if an alpha-bit is set in the &quot;image descriptor byte&quot;)</span></div>
+<div class="line"><a name="l06240"></a><span class="lineno"> 6240</span>&#160; <span class="comment">// but that only made 16bit test images completely translucent..</span></div>
+<div class="line"><a name="l06241"></a><span class="lineno"> 6241</span>&#160; <span class="comment">// so let&#39;s treat all 15 and 16bit TGAs as RGB with no alpha.</span></div>
+<div class="line"><a name="l06242"></a><span class="lineno"> 6242</span>&#160;}</div>
+<div class="line"><a name="l06243"></a><span class="lineno"> 6243</span>&#160;</div>
+<div class="line"><a name="l06244"></a><span class="lineno"> 6244</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__tga_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l06245"></a><span class="lineno"> 6245</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l06246"></a><span class="lineno"> 6246</span>&#160;{</div>
+<div class="line"><a name="l06247"></a><span class="lineno"> 6247</span>&#160; <span class="comment">// read in the TGA header stuff</span></div>
+<div class="line"><a name="l06248"></a><span class="lineno"> 6248</span>&#160; <span class="keywordtype">int</span> tga_offset = stbi__get8(s);</div>
+<div class="line"><a name="l06249"></a><span class="lineno"> 6249</span>&#160; <span class="keywordtype">int</span> tga_indexed = stbi__get8(s);</div>
+<div class="line"><a name="l06250"></a><span class="lineno"> 6250</span>&#160; <span class="keywordtype">int</span> tga_image_type = stbi__get8(s);</div>
+<div class="line"><a name="l06251"></a><span class="lineno"> 6251</span>&#160; <span class="keywordtype">int</span> tga_is_RLE = 0;</div>
+<div class="line"><a name="l06252"></a><span class="lineno"> 6252</span>&#160; <span class="keywordtype">int</span> tga_palette_start = stbi__get16le(s);</div>
+<div class="line"><a name="l06253"></a><span class="lineno"> 6253</span>&#160; <span class="keywordtype">int</span> tga_palette_len = stbi__get16le(s);</div>
+<div class="line"><a name="l06254"></a><span class="lineno"> 6254</span>&#160; <span class="keywordtype">int</span> tga_palette_bits = stbi__get8(s);</div>
+<div class="line"><a name="l06255"></a><span class="lineno"> 6255</span>&#160; <span class="keywordtype">int</span> tga_x_origin = stbi__get16le(s);</div>
+<div class="line"><a name="l06256"></a><span class="lineno"> 6256</span>&#160; <span class="keywordtype">int</span> tga_y_origin = stbi__get16le(s);</div>
+<div class="line"><a name="l06257"></a><span class="lineno"> 6257</span>&#160; <span class="keywordtype">int</span> tga_width = stbi__get16le(s);</div>
+<div class="line"><a name="l06258"></a><span class="lineno"> 6258</span>&#160; <span class="keywordtype">int</span> tga_height = stbi__get16le(s);</div>
+<div class="line"><a name="l06259"></a><span class="lineno"> 6259</span>&#160; <span class="keywordtype">int</span> tga_bits_per_pixel = stbi__get8(s);</div>
+<div class="line"><a name="l06260"></a><span class="lineno"> 6260</span>&#160; <span class="keywordtype">int</span> tga_comp, tga_rgb16 = 0;</div>
+<div class="line"><a name="l06261"></a><span class="lineno"> 6261</span>&#160; <span class="keywordtype">int</span> tga_inverted = stbi__get8(s);</div>
+<div class="line"><a name="l06262"></a><span class="lineno"> 6262</span>&#160; <span class="comment">// int tga_alpha_bits = tga_inverted &amp; 15; // the 4 lowest bits - unused</span></div>
+<div class="line"><a name="l06263"></a><span class="lineno"> 6263</span>&#160; <span class="comment">// (useless?)</span></div>
+<div class="line"><a name="l06264"></a><span class="lineno"> 6264</span>&#160; <span class="comment">// image data</span></div>
+<div class="line"><a name="l06265"></a><span class="lineno"> 6265</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tga_data;</div>
+<div class="line"><a name="l06266"></a><span class="lineno"> 6266</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tga_palette = NULL;</div>
+<div class="line"><a name="l06267"></a><span class="lineno"> 6267</span>&#160; <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l06268"></a><span class="lineno"> 6268</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> raw_data[4] = {0};</div>
+<div class="line"><a name="l06269"></a><span class="lineno"> 6269</span>&#160; <span class="keywordtype">int</span> RLE_count = 0;</div>
+<div class="line"><a name="l06270"></a><span class="lineno"> 6270</span>&#160; <span class="keywordtype">int</span> RLE_repeating = 0;</div>
+<div class="line"><a name="l06271"></a><span class="lineno"> 6271</span>&#160; <span class="keywordtype">int</span> read_next_pixel = 1;</div>
+<div class="line"><a name="l06272"></a><span class="lineno"> 6272</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l06273"></a><span class="lineno"> 6273</span>&#160;</div>
+<div class="line"><a name="l06274"></a><span class="lineno"> 6274</span>&#160; <span class="comment">// do a tiny bit of precessing</span></div>
+<div class="line"><a name="l06275"></a><span class="lineno"> 6275</span>&#160; <span class="keywordflow">if</span> (tga_image_type &gt;= 8) {</div>
+<div class="line"><a name="l06276"></a><span class="lineno"> 6276</span>&#160; tga_image_type -= 8;</div>
+<div class="line"><a name="l06277"></a><span class="lineno"> 6277</span>&#160; tga_is_RLE = 1;</div>
+<div class="line"><a name="l06278"></a><span class="lineno"> 6278</span>&#160; }</div>
+<div class="line"><a name="l06279"></a><span class="lineno"> 6279</span>&#160; tga_inverted = 1 - ((tga_inverted &gt;&gt; 5) &amp; 1);</div>
+<div class="line"><a name="l06280"></a><span class="lineno"> 6280</span>&#160;</div>
+<div class="line"><a name="l06281"></a><span class="lineno"> 6281</span>&#160; <span class="comment">// If I&#39;m paletted, then I&#39;ll use the number of bits from the palette</span></div>
+<div class="line"><a name="l06282"></a><span class="lineno"> 6282</span>&#160; <span class="keywordflow">if</span> (tga_indexed)</div>
+<div class="line"><a name="l06283"></a><span class="lineno"> 6283</span>&#160; tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &amp;tga_rgb16);</div>
+<div class="line"><a name="l06284"></a><span class="lineno"> 6284</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l06285"></a><span class="lineno"> 6285</span>&#160; tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3),</div>
+<div class="line"><a name="l06286"></a><span class="lineno"> 6286</span>&#160; &amp;tga_rgb16);</div>
+<div class="line"><a name="l06287"></a><span class="lineno"> 6287</span>&#160;</div>
+<div class="line"><a name="l06288"></a><span class="lineno"> 6288</span>&#160; <span class="keywordflow">if</span> (!tga_comp) <span class="comment">// shouldn&#39;t really happen, stbi__tga_test() should have</span></div>
+<div class="line"><a name="l06289"></a><span class="lineno"> 6289</span>&#160; <span class="comment">// ensured basic consistency</span></div>
+<div class="line"><a name="l06290"></a><span class="lineno"> 6290</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>, <span class="stringliteral">&quot;Can&#39;t find out TGA pixelformat&quot;</span>);</div>
+<div class="line"><a name="l06291"></a><span class="lineno"> 6291</span>&#160;</div>
+<div class="line"><a name="l06292"></a><span class="lineno"> 6292</span>&#160; <span class="comment">// tga info</span></div>
+<div class="line"><a name="l06293"></a><span class="lineno"> 6293</span>&#160; *x = tga_width;</div>
+<div class="line"><a name="l06294"></a><span class="lineno"> 6294</span>&#160; *y = tga_height;</div>
+<div class="line"><a name="l06295"></a><span class="lineno"> 6295</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l06296"></a><span class="lineno"> 6296</span>&#160; *comp = tga_comp;</div>
<div class="line"><a name="l06297"></a><span class="lineno"> 6297</span>&#160;</div>
-<div class="line"><a name="l06298"></a><span class="lineno"> 6298</span>&#160; x = stbi__get16le(s);</div>
-<div class="line"><a name="l06299"></a><span class="lineno"> 6299</span>&#160; y = stbi__get16le(s);</div>
-<div class="line"><a name="l06300"></a><span class="lineno"> 6300</span>&#160; w = stbi__get16le(s);</div>
-<div class="line"><a name="l06301"></a><span class="lineno"> 6301</span>&#160; h = stbi__get16le(s);</div>
-<div class="line"><a name="l06302"></a><span class="lineno"> 6302</span>&#160; <span class="keywordflow">if</span> (((x + w) &gt; (g-&gt;w)) || ((y + h) &gt; (g-&gt;h)))</div>
-<div class="line"><a name="l06303"></a><span class="lineno"> 6303</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad Image Descriptor&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06304"></a><span class="lineno"> 6304</span>&#160;</div>
-<div class="line"><a name="l06305"></a><span class="lineno"> 6305</span>&#160; g-&gt;line_size = g-&gt;w * 4;</div>
-<div class="line"><a name="l06306"></a><span class="lineno"> 6306</span>&#160; g-&gt;start_x = x * 4;</div>
-<div class="line"><a name="l06307"></a><span class="lineno"> 6307</span>&#160; g-&gt;start_y = y * g-&gt;line_size;</div>
-<div class="line"><a name="l06308"></a><span class="lineno"> 6308</span>&#160; g-&gt;max_x = g-&gt;start_x + w * 4;</div>
-<div class="line"><a name="l06309"></a><span class="lineno"> 6309</span>&#160; g-&gt;max_y = g-&gt;start_y + h * g-&gt;line_size;</div>
-<div class="line"><a name="l06310"></a><span class="lineno"> 6310</span>&#160; g-&gt;cur_x = g-&gt;start_x;</div>
-<div class="line"><a name="l06311"></a><span class="lineno"> 6311</span>&#160; g-&gt;cur_y = g-&gt;start_y;</div>
-<div class="line"><a name="l06312"></a><span class="lineno"> 6312</span>&#160;</div>
-<div class="line"><a name="l06313"></a><span class="lineno"> 6313</span>&#160; g-&gt;lflags = stbi__get8(s);</div>
-<div class="line"><a name="l06314"></a><span class="lineno"> 6314</span>&#160;</div>
-<div class="line"><a name="l06315"></a><span class="lineno"> 6315</span>&#160; <span class="keywordflow">if</span> (g-&gt;lflags &amp; 0x40) {</div>
-<div class="line"><a name="l06316"></a><span class="lineno"> 6316</span>&#160; g-&gt;step = 8 * g-&gt;line_size; <span class="comment">// first interlaced spacing</span></div>
-<div class="line"><a name="l06317"></a><span class="lineno"> 6317</span>&#160; g-&gt;parse = 3;</div>
-<div class="line"><a name="l06318"></a><span class="lineno"> 6318</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06319"></a><span class="lineno"> 6319</span>&#160; g-&gt;step = g-&gt;line_size;</div>
-<div class="line"><a name="l06320"></a><span class="lineno"> 6320</span>&#160; g-&gt;parse = 0;</div>
-<div class="line"><a name="l06321"></a><span class="lineno"> 6321</span>&#160; }</div>
-<div class="line"><a name="l06322"></a><span class="lineno"> 6322</span>&#160;</div>
-<div class="line"><a name="l06323"></a><span class="lineno"> 6323</span>&#160; <span class="keywordflow">if</span> (g-&gt;lflags &amp; 0x80) {</div>
-<div class="line"><a name="l06324"></a><span class="lineno"> 6324</span>&#160; stbi__gif_parse_colortable(s,g-&gt;lpal, 2 &lt;&lt; (g-&gt;lflags &amp; 7), g-&gt;eflags &amp; 0x01 ? g-&gt;transparent : -1);</div>
-<div class="line"><a name="l06325"></a><span class="lineno"> 6325</span>&#160; g-&gt;color_table = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) g-&gt;lpal;</div>
-<div class="line"><a name="l06326"></a><span class="lineno"> 6326</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g-&gt;flags &amp; 0x80) {</div>
-<div class="line"><a name="l06327"></a><span class="lineno"> 6327</span>&#160; <span class="keywordflow">if</span> (g-&gt;transparent &gt;= 0 &amp;&amp; (g-&gt;eflags &amp; 0x01)) {</div>
-<div class="line"><a name="l06328"></a><span class="lineno"> 6328</span>&#160; prev_trans = g-&gt;pal[g-&gt;transparent][3];</div>
-<div class="line"><a name="l06329"></a><span class="lineno"> 6329</span>&#160; g-&gt;pal[g-&gt;transparent][3] = 0;</div>
-<div class="line"><a name="l06330"></a><span class="lineno"> 6330</span>&#160; }</div>
-<div class="line"><a name="l06331"></a><span class="lineno"> 6331</span>&#160; g-&gt;color_table = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) g-&gt;pal;</div>
-<div class="line"><a name="l06332"></a><span class="lineno"> 6332</span>&#160; } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06333"></a><span class="lineno"> 6333</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;missing color table&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06334"></a><span class="lineno"> 6334</span>&#160;</div>
-<div class="line"><a name="l06335"></a><span class="lineno"> 6335</span>&#160; o = stbi__process_gif_raster(s, g);</div>
-<div class="line"><a name="l06336"></a><span class="lineno"> 6336</span>&#160; <span class="keywordflow">if</span> (o == NULL) <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l06337"></a><span class="lineno"> 6337</span>&#160;</div>
-<div class="line"><a name="l06338"></a><span class="lineno"> 6338</span>&#160; <span class="keywordflow">if</span> (prev_trans != -1)</div>
-<div class="line"><a name="l06339"></a><span class="lineno"> 6339</span>&#160; g-&gt;pal[g-&gt;transparent][3] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) prev_trans;</div>
-<div class="line"><a name="l06340"></a><span class="lineno"> 6340</span>&#160;</div>
-<div class="line"><a name="l06341"></a><span class="lineno"> 6341</span>&#160; <span class="keywordflow">return</span> o;</div>
-<div class="line"><a name="l06342"></a><span class="lineno"> 6342</span>&#160; }</div>
-<div class="line"><a name="l06343"></a><span class="lineno"> 6343</span>&#160;</div>
-<div class="line"><a name="l06344"></a><span class="lineno"> 6344</span>&#160; <span class="keywordflow">case</span> 0x21: <span class="comment">// Comment Extension.</span></div>
-<div class="line"><a name="l06345"></a><span class="lineno"> 6345</span>&#160; {</div>
-<div class="line"><a name="l06346"></a><span class="lineno"> 6346</span>&#160; <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l06347"></a><span class="lineno"> 6347</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) == 0xF9) { <span class="comment">// Graphic Control Extension.</span></div>
-<div class="line"><a name="l06348"></a><span class="lineno"> 6348</span>&#160; len = stbi__get8(s);</div>
-<div class="line"><a name="l06349"></a><span class="lineno"> 6349</span>&#160; <span class="keywordflow">if</span> (len == 4) {</div>
-<div class="line"><a name="l06350"></a><span class="lineno"> 6350</span>&#160; g-&gt;eflags = stbi__get8(s);</div>
-<div class="line"><a name="l06351"></a><span class="lineno"> 6351</span>&#160; g-&gt;delay = stbi__get16le(s);</div>
-<div class="line"><a name="l06352"></a><span class="lineno"> 6352</span>&#160; g-&gt;transparent = stbi__get8(s);</div>
-<div class="line"><a name="l06353"></a><span class="lineno"> 6353</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06354"></a><span class="lineno"> 6354</span>&#160; stbi__skip(s, len);</div>
-<div class="line"><a name="l06355"></a><span class="lineno"> 6355</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06356"></a><span class="lineno"> 6356</span>&#160; }</div>
-<div class="line"><a name="l06357"></a><span class="lineno"> 6357</span>&#160; }</div>
-<div class="line"><a name="l06358"></a><span class="lineno"> 6358</span>&#160; <span class="keywordflow">while</span> ((len = stbi__get8(s)) != 0)</div>
-<div class="line"><a name="l06359"></a><span class="lineno"> 6359</span>&#160; stbi__skip(s, len);</div>
-<div class="line"><a name="l06360"></a><span class="lineno"> 6360</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06361"></a><span class="lineno"> 6361</span>&#160; }</div>
-<div class="line"><a name="l06362"></a><span class="lineno"> 6362</span>&#160;</div>
-<div class="line"><a name="l06363"></a><span class="lineno"> 6363</span>&#160; <span class="keywordflow">case</span> 0x3B: <span class="comment">// gif stream termination code</span></div>
-<div class="line"><a name="l06364"></a><span class="lineno"> 6364</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) s; <span class="comment">// using &#39;1&#39; causes warning on some compilers</span></div>
-<div class="line"><a name="l06365"></a><span class="lineno"> 6365</span>&#160;</div>
-<div class="line"><a name="l06366"></a><span class="lineno"> 6366</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l06367"></a><span class="lineno"> 6367</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown code&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
-<div class="line"><a name="l06368"></a><span class="lineno"> 6368</span>&#160; }</div>
-<div class="line"><a name="l06369"></a><span class="lineno"> 6369</span>&#160; }</div>
-<div class="line"><a name="l06370"></a><span class="lineno"> 6370</span>&#160;</div>
-<div class="line"><a name="l06371"></a><span class="lineno"> 6371</span>&#160; STBI_NOTUSED(req_comp);</div>
-<div class="line"><a name="l06372"></a><span class="lineno"> 6372</span>&#160;}</div>
-<div class="line"><a name="l06373"></a><span class="lineno"> 6373</span>&#160;</div>
-<div class="line"><a name="l06374"></a><span class="lineno"> 6374</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__gif_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l06375"></a><span class="lineno"> 6375</span>&#160;{</div>
-<div class="line"><a name="l06376"></a><span class="lineno"> 6376</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *u = 0;</div>
-<div class="line"><a name="l06377"></a><span class="lineno"> 6377</span>&#160; stbi__gif* g = (stbi__gif*) stbi__malloc(<span class="keyword">sizeof</span>(stbi__gif));</div>
-<div class="line"><a name="l06378"></a><span class="lineno"> 6378</span>&#160; memset(g, 0, <span class="keyword">sizeof</span>(*g));</div>
-<div class="line"><a name="l06379"></a><span class="lineno"> 6379</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l06380"></a><span class="lineno"> 6380</span>&#160;</div>
-<div class="line"><a name="l06381"></a><span class="lineno"> 6381</span>&#160; u = stbi__gif_load_next(s, g, comp, req_comp);</div>
-<div class="line"><a name="l06382"></a><span class="lineno"> 6382</span>&#160; <span class="keywordflow">if</span> (u == (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) s) u = 0; <span class="comment">// end of animated gif marker</span></div>
-<div class="line"><a name="l06383"></a><span class="lineno"> 6383</span>&#160; <span class="keywordflow">if</span> (u) {</div>
-<div class="line"><a name="l06384"></a><span class="lineno"> 6384</span>&#160; *x = g-&gt;w;</div>
-<div class="line"><a name="l06385"></a><span class="lineno"> 6385</span>&#160; *y = g-&gt;h;</div>
-<div class="line"><a name="l06386"></a><span class="lineno"> 6386</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != 4)</div>
-<div class="line"><a name="l06387"></a><span class="lineno"> 6387</span>&#160; u = stbi__convert_format(u, 4, req_comp, g-&gt;w, g-&gt;h);</div>
-<div class="line"><a name="l06388"></a><span class="lineno"> 6388</span>&#160; }</div>
-<div class="line"><a name="l06389"></a><span class="lineno"> 6389</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g-&gt;out)</div>
-<div class="line"><a name="l06390"></a><span class="lineno"> 6390</span>&#160; STBI_FREE(g-&gt;out);</div>
-<div class="line"><a name="l06391"></a><span class="lineno"> 6391</span>&#160; STBI_FREE(g);</div>
-<div class="line"><a name="l06392"></a><span class="lineno"> 6392</span>&#160; <span class="keywordflow">return</span> u;</div>
-<div class="line"><a name="l06393"></a><span class="lineno"> 6393</span>&#160;}</div>
-<div class="line"><a name="l06394"></a><span class="lineno"> 6394</span>&#160;</div>
-<div class="line"><a name="l06395"></a><span class="lineno"> 6395</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06396"></a><span class="lineno"> 6396</span>&#160;{</div>
-<div class="line"><a name="l06397"></a><span class="lineno"> 6397</span>&#160; <span class="keywordflow">return</span> stbi__gif_info_raw(s,x,y,comp);</div>
-<div class="line"><a name="l06398"></a><span class="lineno"> 6398</span>&#160;}</div>
-<div class="line"><a name="l06399"></a><span class="lineno"> 6399</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06400"></a><span class="lineno"> 6400</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06401"></a><span class="lineno"> 6401</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
-<div class="line"><a name="l06402"></a><span class="lineno"> 6402</span>&#160;<span class="comment">// Radiance RGBE HDR loader</span></div>
-<div class="line"><a name="l06403"></a><span class="lineno"> 6403</span>&#160;<span class="comment">// originally by Nicolas Schulz</span></div>
-<div class="line"><a name="l06404"></a><span class="lineno"> 6404</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l06405"></a><span class="lineno"> 6405</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test_core(stbi__context *s, <span class="keyword">const</span> <span class="keywordtype">char</span> *signature)</div>
-<div class="line"><a name="l06406"></a><span class="lineno"> 6406</span>&#160;{</div>
-<div class="line"><a name="l06407"></a><span class="lineno"> 6407</span>&#160; <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l06408"></a><span class="lineno"> 6408</span>&#160; <span class="keywordflow">for</span> (i=0; signature[i]; ++i)</div>
-<div class="line"><a name="l06409"></a><span class="lineno"> 6409</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != signature[i])</div>
-<div class="line"><a name="l06410"></a><span class="lineno"> 6410</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06411"></a><span class="lineno"> 6411</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06412"></a><span class="lineno"> 6412</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06413"></a><span class="lineno"> 6413</span>&#160;}</div>
-<div class="line"><a name="l06414"></a><span class="lineno"> 6414</span>&#160;</div>
-<div class="line"><a name="l06415"></a><span class="lineno"> 6415</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test(stbi__context* s)</div>
-<div class="line"><a name="l06416"></a><span class="lineno"> 6416</span>&#160;{</div>
-<div class="line"><a name="l06417"></a><span class="lineno"> 6417</span>&#160; <span class="keywordtype">int</span> r = stbi__hdr_test_core(s, <span class="stringliteral">&quot;#?RADIANCE\n&quot;</span>);</div>
-<div class="line"><a name="l06418"></a><span class="lineno"> 6418</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06419"></a><span class="lineno"> 6419</span>&#160; <span class="keywordflow">if</span>(!r) {</div>
-<div class="line"><a name="l06420"></a><span class="lineno"> 6420</span>&#160; r = stbi__hdr_test_core(s, <span class="stringliteral">&quot;#?RGBE\n&quot;</span>);</div>
-<div class="line"><a name="l06421"></a><span class="lineno"> 6421</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06422"></a><span class="lineno"> 6422</span>&#160; }</div>
-<div class="line"><a name="l06423"></a><span class="lineno"> 6423</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l06424"></a><span class="lineno"> 6424</span>&#160;}</div>
-<div class="line"><a name="l06425"></a><span class="lineno"> 6425</span>&#160;</div>
-<div class="line"><a name="l06426"></a><span class="lineno"> 6426</span>&#160;<span class="preprocessor">#define STBI__HDR_BUFLEN 1024</span></div>
-<div class="line"><a name="l06427"></a><span class="lineno"> 6427</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">char</span> *stbi__hdr_gettoken(stbi__context *z, <span class="keywordtype">char</span> *buffer)</div>
-<div class="line"><a name="l06428"></a><span class="lineno"> 6428</span>&#160;{</div>
-<div class="line"><a name="l06429"></a><span class="lineno"> 6429</span>&#160; <span class="keywordtype">int</span> len=0;</div>
-<div class="line"><a name="l06430"></a><span class="lineno"> 6430</span>&#160; <span class="keywordtype">char</span> c = <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l06431"></a><span class="lineno"> 6431</span>&#160;</div>
-<div class="line"><a name="l06432"></a><span class="lineno"> 6432</span>&#160; c = (char) stbi__get8(z);</div>
-<div class="line"><a name="l06433"></a><span class="lineno"> 6433</span>&#160;</div>
-<div class="line"><a name="l06434"></a><span class="lineno"> 6434</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(z) &amp;&amp; c != <span class="charliteral">&#39;\n&#39;</span>) {</div>
-<div class="line"><a name="l06435"></a><span class="lineno"> 6435</span>&#160; buffer[len++] = c;</div>
-<div class="line"><a name="l06436"></a><span class="lineno"> 6436</span>&#160; <span class="keywordflow">if</span> (len == STBI__HDR_BUFLEN-1) {</div>
-<div class="line"><a name="l06437"></a><span class="lineno"> 6437</span>&#160; <span class="comment">// flush to end of line</span></div>
-<div class="line"><a name="l06438"></a><span class="lineno"> 6438</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(z) &amp;&amp; stbi__get8(z) != <span class="charliteral">&#39;\n&#39;</span>)</div>
-<div class="line"><a name="l06439"></a><span class="lineno"> 6439</span>&#160; ;</div>
-<div class="line"><a name="l06440"></a><span class="lineno"> 6440</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06441"></a><span class="lineno"> 6441</span>&#160; }</div>
-<div class="line"><a name="l06442"></a><span class="lineno"> 6442</span>&#160; c = (char) stbi__get8(z);</div>
-<div class="line"><a name="l06443"></a><span class="lineno"> 6443</span>&#160; }</div>
-<div class="line"><a name="l06444"></a><span class="lineno"> 6444</span>&#160;</div>
-<div class="line"><a name="l06445"></a><span class="lineno"> 6445</span>&#160; buffer[len] = 0;</div>
-<div class="line"><a name="l06446"></a><span class="lineno"> 6446</span>&#160; <span class="keywordflow">return</span> buffer;</div>
+<div class="line"><a name="l06298"></a><span class="lineno"> 6298</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))</div>
+<div class="line"><a name="l06299"></a><span class="lineno"> 6299</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt TGA&quot;</span>);</div>
+<div class="line"><a name="l06300"></a><span class="lineno"> 6300</span>&#160;</div>
+<div class="line"><a name="l06301"></a><span class="lineno"> 6301</span>&#160; tga_data =</div>
+<div class="line"><a name="l06302"></a><span class="lineno"> 6302</span>&#160; (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);</div>
+<div class="line"><a name="l06303"></a><span class="lineno"> 6303</span>&#160; <span class="keywordflow">if</span> (!tga_data)</div>
+<div class="line"><a name="l06304"></a><span class="lineno"> 6304</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l06305"></a><span class="lineno"> 6305</span>&#160;</div>
+<div class="line"><a name="l06306"></a><span class="lineno"> 6306</span>&#160; <span class="comment">// skip to the data&#39;s starting position (offset usually = 0)</span></div>
+<div class="line"><a name="l06307"></a><span class="lineno"> 6307</span>&#160; stbi__skip(s, tga_offset);</div>
+<div class="line"><a name="l06308"></a><span class="lineno"> 6308</span>&#160;</div>
+<div class="line"><a name="l06309"></a><span class="lineno"> 6309</span>&#160; <span class="keywordflow">if</span> (!tga_indexed &amp;&amp; !tga_is_RLE &amp;&amp; !tga_rgb16) {</div>
+<div class="line"><a name="l06310"></a><span class="lineno"> 6310</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tga_height; ++i) {</div>
+<div class="line"><a name="l06311"></a><span class="lineno"> 6311</span>&#160; <span class="keywordtype">int</span> row = tga_inverted ? tga_height - i - 1 : i;</div>
+<div class="line"><a name="l06312"></a><span class="lineno"> 6312</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *tga_row = tga_data + row * tga_width * tga_comp;</div>
+<div class="line"><a name="l06313"></a><span class="lineno"> 6313</span>&#160; stbi__getn(s, tga_row, tga_width * tga_comp);</div>
+<div class="line"><a name="l06314"></a><span class="lineno"> 6314</span>&#160; }</div>
+<div class="line"><a name="l06315"></a><span class="lineno"> 6315</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06316"></a><span class="lineno"> 6316</span>&#160; <span class="comment">// do I need to load a palette?</span></div>
+<div class="line"><a name="l06317"></a><span class="lineno"> 6317</span>&#160; <span class="keywordflow">if</span> (tga_indexed) {</div>
+<div class="line"><a name="l06318"></a><span class="lineno"> 6318</span>&#160; <span class="comment">// any data to skip? (offset usually = 0)</span></div>
+<div class="line"><a name="l06319"></a><span class="lineno"> 6319</span>&#160; stbi__skip(s, tga_palette_start);</div>
+<div class="line"><a name="l06320"></a><span class="lineno"> 6320</span>&#160; <span class="comment">// load the palette</span></div>
+<div class="line"><a name="l06321"></a><span class="lineno"> 6321</span>&#160; tga_palette = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)stbi__malloc_mad2(tga_palette_len,</div>
+<div class="line"><a name="l06322"></a><span class="lineno"> 6322</span>&#160; tga_comp, 0);</div>
+<div class="line"><a name="l06323"></a><span class="lineno"> 6323</span>&#160; <span class="keywordflow">if</span> (!tga_palette) {</div>
+<div class="line"><a name="l06324"></a><span class="lineno"> 6324</span>&#160; STBI_FREE(tga_data);</div>
+<div class="line"><a name="l06325"></a><span class="lineno"> 6325</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l06326"></a><span class="lineno"> 6326</span>&#160; }</div>
+<div class="line"><a name="l06327"></a><span class="lineno"> 6327</span>&#160; <span class="keywordflow">if</span> (tga_rgb16) {</div>
+<div class="line"><a name="l06328"></a><span class="lineno"> 6328</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *pal_entry = tga_palette;</div>
+<div class="line"><a name="l06329"></a><span class="lineno"> 6329</span>&#160; STBI_ASSERT(tga_comp == <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>);</div>
+<div class="line"><a name="l06330"></a><span class="lineno"> 6330</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tga_palette_len; ++i) {</div>
+<div class="line"><a name="l06331"></a><span class="lineno"> 6331</span>&#160; stbi__tga_read_rgb16(s, pal_entry);</div>
+<div class="line"><a name="l06332"></a><span class="lineno"> 6332</span>&#160; pal_entry += tga_comp;</div>
+<div class="line"><a name="l06333"></a><span class="lineno"> 6333</span>&#160; }</div>
+<div class="line"><a name="l06334"></a><span class="lineno"> 6334</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!stbi__getn(s, tga_palette,</div>
+<div class="line"><a name="l06335"></a><span class="lineno"> 6335</span>&#160; tga_palette_len * tga_comp)) {</div>
+<div class="line"><a name="l06336"></a><span class="lineno"> 6336</span>&#160; STBI_FREE(tga_data);</div>
+<div class="line"><a name="l06337"></a><span class="lineno"> 6337</span>&#160; STBI_FREE(tga_palette);</div>
+<div class="line"><a name="l06338"></a><span class="lineno"> 6338</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad palette&quot;</span>, <span class="stringliteral">&quot;Corrupt TGA&quot;</span>);</div>
+<div class="line"><a name="l06339"></a><span class="lineno"> 6339</span>&#160; }</div>
+<div class="line"><a name="l06340"></a><span class="lineno"> 6340</span>&#160; }</div>
+<div class="line"><a name="l06341"></a><span class="lineno"> 6341</span>&#160; <span class="comment">// load the data</span></div>
+<div class="line"><a name="l06342"></a><span class="lineno"> 6342</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tga_width * tga_height; ++i) {</div>
+<div class="line"><a name="l06343"></a><span class="lineno"> 6343</span>&#160; <span class="comment">// if I&#39;m in RLE mode, do I need to get a RLE stbi__pngchunk?</span></div>
+<div class="line"><a name="l06344"></a><span class="lineno"> 6344</span>&#160; <span class="keywordflow">if</span> (tga_is_RLE) {</div>
+<div class="line"><a name="l06345"></a><span class="lineno"> 6345</span>&#160; <span class="keywordflow">if</span> (RLE_count == 0) {</div>
+<div class="line"><a name="l06346"></a><span class="lineno"> 6346</span>&#160; <span class="comment">// yep, get the next byte as a RLE command</span></div>
+<div class="line"><a name="l06347"></a><span class="lineno"> 6347</span>&#160; <span class="keywordtype">int</span> RLE_cmd = stbi__get8(s);</div>
+<div class="line"><a name="l06348"></a><span class="lineno"> 6348</span>&#160; RLE_count = 1 + (RLE_cmd &amp; 127);</div>
+<div class="line"><a name="l06349"></a><span class="lineno"> 6349</span>&#160; RLE_repeating = RLE_cmd &gt;&gt; 7;</div>
+<div class="line"><a name="l06350"></a><span class="lineno"> 6350</span>&#160; read_next_pixel = 1;</div>
+<div class="line"><a name="l06351"></a><span class="lineno"> 6351</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!RLE_repeating) {</div>
+<div class="line"><a name="l06352"></a><span class="lineno"> 6352</span>&#160; read_next_pixel = 1;</div>
+<div class="line"><a name="l06353"></a><span class="lineno"> 6353</span>&#160; }</div>
+<div class="line"><a name="l06354"></a><span class="lineno"> 6354</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06355"></a><span class="lineno"> 6355</span>&#160; read_next_pixel = 1;</div>
+<div class="line"><a name="l06356"></a><span class="lineno"> 6356</span>&#160; }</div>
+<div class="line"><a name="l06357"></a><span class="lineno"> 6357</span>&#160; <span class="comment">// OK, if I need to read a pixel, do it now</span></div>
+<div class="line"><a name="l06358"></a><span class="lineno"> 6358</span>&#160; <span class="keywordflow">if</span> (read_next_pixel) {</div>
+<div class="line"><a name="l06359"></a><span class="lineno"> 6359</span>&#160; <span class="comment">// load however much data we did have</span></div>
+<div class="line"><a name="l06360"></a><span class="lineno"> 6360</span>&#160; <span class="keywordflow">if</span> (tga_indexed) {</div>
+<div class="line"><a name="l06361"></a><span class="lineno"> 6361</span>&#160; <span class="comment">// read in index, then perform the lookup</span></div>
+<div class="line"><a name="l06362"></a><span class="lineno"> 6362</span>&#160; <span class="keywordtype">int</span> pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s)</div>
+<div class="line"><a name="l06363"></a><span class="lineno"> 6363</span>&#160; : stbi__get16le(s);</div>
+<div class="line"><a name="l06364"></a><span class="lineno"> 6364</span>&#160; <span class="keywordflow">if</span> (pal_idx &gt;= tga_palette_len) {</div>
+<div class="line"><a name="l06365"></a><span class="lineno"> 6365</span>&#160; <span class="comment">// invalid index</span></div>
+<div class="line"><a name="l06366"></a><span class="lineno"> 6366</span>&#160; pal_idx = 0;</div>
+<div class="line"><a name="l06367"></a><span class="lineno"> 6367</span>&#160; }</div>
+<div class="line"><a name="l06368"></a><span class="lineno"> 6368</span>&#160; pal_idx *= tga_comp;</div>
+<div class="line"><a name="l06369"></a><span class="lineno"> 6369</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j) {</div>
+<div class="line"><a name="l06370"></a><span class="lineno"> 6370</span>&#160; raw_data[j] = tga_palette[pal_idx + j];</div>
+<div class="line"><a name="l06371"></a><span class="lineno"> 6371</span>&#160; }</div>
+<div class="line"><a name="l06372"></a><span class="lineno"> 6372</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (tga_rgb16) {</div>
+<div class="line"><a name="l06373"></a><span class="lineno"> 6373</span>&#160; STBI_ASSERT(tga_comp == <a class="code" href="stb__image_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa59123e5d0af25f9b1539f5cf1facddf">STBI_rgb</a>);</div>
+<div class="line"><a name="l06374"></a><span class="lineno"> 6374</span>&#160; stbi__tga_read_rgb16(s, raw_data);</div>
+<div class="line"><a name="l06375"></a><span class="lineno"> 6375</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06376"></a><span class="lineno"> 6376</span>&#160; <span class="comment">// read in the data raw</span></div>
+<div class="line"><a name="l06377"></a><span class="lineno"> 6377</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j) {</div>
+<div class="line"><a name="l06378"></a><span class="lineno"> 6378</span>&#160; raw_data[j] = stbi__get8(s);</div>
+<div class="line"><a name="l06379"></a><span class="lineno"> 6379</span>&#160; }</div>
+<div class="line"><a name="l06380"></a><span class="lineno"> 6380</span>&#160; }</div>
+<div class="line"><a name="l06381"></a><span class="lineno"> 6381</span>&#160; <span class="comment">// clear the reading flag for the next pixel</span></div>
+<div class="line"><a name="l06382"></a><span class="lineno"> 6382</span>&#160; read_next_pixel = 0;</div>
+<div class="line"><a name="l06383"></a><span class="lineno"> 6383</span>&#160; } <span class="comment">// end of reading a pixel</span></div>
+<div class="line"><a name="l06384"></a><span class="lineno"> 6384</span>&#160;</div>
+<div class="line"><a name="l06385"></a><span class="lineno"> 6385</span>&#160; <span class="comment">// copy data</span></div>
+<div class="line"><a name="l06386"></a><span class="lineno"> 6386</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; tga_comp; ++j)</div>
+<div class="line"><a name="l06387"></a><span class="lineno"> 6387</span>&#160; tga_data[i * tga_comp + j] = raw_data[j];</div>
+<div class="line"><a name="l06388"></a><span class="lineno"> 6388</span>&#160;</div>
+<div class="line"><a name="l06389"></a><span class="lineno"> 6389</span>&#160; <span class="comment">// in case we&#39;re in RLE mode, keep counting down</span></div>
+<div class="line"><a name="l06390"></a><span class="lineno"> 6390</span>&#160; --RLE_count;</div>
+<div class="line"><a name="l06391"></a><span class="lineno"> 6391</span>&#160; }</div>
+<div class="line"><a name="l06392"></a><span class="lineno"> 6392</span>&#160; <span class="comment">// do I need to invert the image?</span></div>
+<div class="line"><a name="l06393"></a><span class="lineno"> 6393</span>&#160; <span class="keywordflow">if</span> (tga_inverted) {</div>
+<div class="line"><a name="l06394"></a><span class="lineno"> 6394</span>&#160; <span class="keywordflow">for</span> (j = 0; j * 2 &lt; tga_height; ++j) {</div>
+<div class="line"><a name="l06395"></a><span class="lineno"> 6395</span>&#160; <span class="keywordtype">int</span> index1 = j * tga_width * tga_comp;</div>
+<div class="line"><a name="l06396"></a><span class="lineno"> 6396</span>&#160; <span class="keywordtype">int</span> index2 = (tga_height - 1 - j) * tga_width * tga_comp;</div>
+<div class="line"><a name="l06397"></a><span class="lineno"> 6397</span>&#160; <span class="keywordflow">for</span> (i = tga_width * tga_comp; i &gt; 0; --i) {</div>
+<div class="line"><a name="l06398"></a><span class="lineno"> 6398</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> temp = tga_data[index1];</div>
+<div class="line"><a name="l06399"></a><span class="lineno"> 6399</span>&#160; tga_data[index1] = tga_data[index2];</div>
+<div class="line"><a name="l06400"></a><span class="lineno"> 6400</span>&#160; tga_data[index2] = temp;</div>
+<div class="line"><a name="l06401"></a><span class="lineno"> 6401</span>&#160; ++index1;</div>
+<div class="line"><a name="l06402"></a><span class="lineno"> 6402</span>&#160; ++index2;</div>
+<div class="line"><a name="l06403"></a><span class="lineno"> 6403</span>&#160; }</div>
+<div class="line"><a name="l06404"></a><span class="lineno"> 6404</span>&#160; }</div>
+<div class="line"><a name="l06405"></a><span class="lineno"> 6405</span>&#160; }</div>
+<div class="line"><a name="l06406"></a><span class="lineno"> 6406</span>&#160; <span class="comment">// clear my palette, if I had one</span></div>
+<div class="line"><a name="l06407"></a><span class="lineno"> 6407</span>&#160; <span class="keywordflow">if</span> (tga_palette != NULL) {</div>
+<div class="line"><a name="l06408"></a><span class="lineno"> 6408</span>&#160; STBI_FREE(tga_palette);</div>
+<div class="line"><a name="l06409"></a><span class="lineno"> 6409</span>&#160; }</div>
+<div class="line"><a name="l06410"></a><span class="lineno"> 6410</span>&#160; }</div>
+<div class="line"><a name="l06411"></a><span class="lineno"> 6411</span>&#160;</div>
+<div class="line"><a name="l06412"></a><span class="lineno"> 6412</span>&#160; <span class="comment">// swap RGB - if the source data was RGB16, it already is in the right order</span></div>
+<div class="line"><a name="l06413"></a><span class="lineno"> 6413</span>&#160; <span class="keywordflow">if</span> (tga_comp &gt;= 3 &amp;&amp; !tga_rgb16) {</div>
+<div class="line"><a name="l06414"></a><span class="lineno"> 6414</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tga_pixel = tga_data;</div>
+<div class="line"><a name="l06415"></a><span class="lineno"> 6415</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tga_width * tga_height; ++i) {</div>
+<div class="line"><a name="l06416"></a><span class="lineno"> 6416</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> temp = tga_pixel[0];</div>
+<div class="line"><a name="l06417"></a><span class="lineno"> 6417</span>&#160; tga_pixel[0] = tga_pixel[2];</div>
+<div class="line"><a name="l06418"></a><span class="lineno"> 6418</span>&#160; tga_pixel[2] = temp;</div>
+<div class="line"><a name="l06419"></a><span class="lineno"> 6419</span>&#160; tga_pixel += tga_comp;</div>
+<div class="line"><a name="l06420"></a><span class="lineno"> 6420</span>&#160; }</div>
+<div class="line"><a name="l06421"></a><span class="lineno"> 6421</span>&#160; }</div>
+<div class="line"><a name="l06422"></a><span class="lineno"> 6422</span>&#160;</div>
+<div class="line"><a name="l06423"></a><span class="lineno"> 6423</span>&#160; <span class="comment">// convert to target component count</span></div>
+<div class="line"><a name="l06424"></a><span class="lineno"> 6424</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != tga_comp)</div>
+<div class="line"><a name="l06425"></a><span class="lineno"> 6425</span>&#160; tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width,</div>
+<div class="line"><a name="l06426"></a><span class="lineno"> 6426</span>&#160; tga_height);</div>
+<div class="line"><a name="l06427"></a><span class="lineno"> 6427</span>&#160;</div>
+<div class="line"><a name="l06428"></a><span class="lineno"> 6428</span>&#160; <span class="comment">// the things I do to get rid of an error message, and yet keep</span></div>
+<div class="line"><a name="l06429"></a><span class="lineno"> 6429</span>&#160; <span class="comment">// Microsoft&#39;s C compilers happy... [8^(</span></div>
+<div class="line"><a name="l06430"></a><span class="lineno"> 6430</span>&#160; tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin =</div>
+<div class="line"><a name="l06431"></a><span class="lineno"> 6431</span>&#160; tga_y_origin = 0;</div>
+<div class="line"><a name="l06432"></a><span class="lineno"> 6432</span>&#160; <span class="comment">// OK, done</span></div>
+<div class="line"><a name="l06433"></a><span class="lineno"> 6433</span>&#160; <span class="keywordflow">return</span> tga_data;</div>
+<div class="line"><a name="l06434"></a><span class="lineno"> 6434</span>&#160;}</div>
+<div class="line"><a name="l06435"></a><span class="lineno"> 6435</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l06436"></a><span class="lineno"> 6436</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l06437"></a><span class="lineno"> 6437</span>&#160; <span class="comment">// *************************************************************************************************</span></div>
+<div class="line"><a name="l06438"></a><span class="lineno"> 6438</span>&#160; <span class="comment">// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas</span></div>
+<div class="line"><a name="l06439"></a><span class="lineno"> 6439</span>&#160; <span class="comment">// Schulz, tweaked by STB</span></div>
+<div class="line"><a name="l06440"></a><span class="lineno"> 6440</span>&#160;</div>
+<div class="line"><a name="l06441"></a><span class="lineno"> 6441</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
+<div class="line"><a name="l06442"></a><span class="lineno"> 6442</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_test(stbi__context *s)</div>
+<div class="line"><a name="l06443"></a><span class="lineno"> 6443</span>&#160;{</div>
+<div class="line"><a name="l06444"></a><span class="lineno"> 6444</span>&#160; <span class="keywordtype">int</span> r = (stbi__get32be(s) == 0x38425053);</div>
+<div class="line"><a name="l06445"></a><span class="lineno"> 6445</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06446"></a><span class="lineno"> 6446</span>&#160; <span class="keywordflow">return</span> r;</div>
<div class="line"><a name="l06447"></a><span class="lineno"> 6447</span>&#160;}</div>
<div class="line"><a name="l06448"></a><span class="lineno"> 6448</span>&#160;</div>
-<div class="line"><a name="l06449"></a><span class="lineno"> 6449</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__hdr_convert(<span class="keywordtype">float</span> *output, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *input, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l06449"></a><span class="lineno"> 6449</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_decode_rle(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, <span class="keywordtype">int</span> pixelCount)</div>
<div class="line"><a name="l06450"></a><span class="lineno"> 6450</span>&#160;{</div>
-<div class="line"><a name="l06451"></a><span class="lineno"> 6451</span>&#160; <span class="keywordflow">if</span> ( input[3] != 0 ) {</div>
-<div class="line"><a name="l06452"></a><span class="lineno"> 6452</span>&#160; <span class="keywordtype">float</span> f1;</div>
-<div class="line"><a name="l06453"></a><span class="lineno"> 6453</span>&#160; <span class="comment">// Exponent</span></div>
-<div class="line"><a name="l06454"></a><span class="lineno"> 6454</span>&#160; f1 = (float) ldexp(1.0f, input[3] - (<span class="keywordtype">int</span>)(128 + 8));</div>
-<div class="line"><a name="l06455"></a><span class="lineno"> 6455</span>&#160; <span class="keywordflow">if</span> (req_comp &lt;= 2)</div>
-<div class="line"><a name="l06456"></a><span class="lineno"> 6456</span>&#160; output[0] = (input[0] + input[1] + input[2]) * f1 / 3;</div>
-<div class="line"><a name="l06457"></a><span class="lineno"> 6457</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06458"></a><span class="lineno"> 6458</span>&#160; output[0] = input[0] * f1;</div>
-<div class="line"><a name="l06459"></a><span class="lineno"> 6459</span>&#160; output[1] = input[1] * f1;</div>
-<div class="line"><a name="l06460"></a><span class="lineno"> 6460</span>&#160; output[2] = input[2] * f1;</div>
-<div class="line"><a name="l06461"></a><span class="lineno"> 6461</span>&#160; }</div>
-<div class="line"><a name="l06462"></a><span class="lineno"> 6462</span>&#160; <span class="keywordflow">if</span> (req_comp == 2) output[1] = 1;</div>
-<div class="line"><a name="l06463"></a><span class="lineno"> 6463</span>&#160; <span class="keywordflow">if</span> (req_comp == 4) output[3] = 1;</div>
-<div class="line"><a name="l06464"></a><span class="lineno"> 6464</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06465"></a><span class="lineno"> 6465</span>&#160; <span class="keywordflow">switch</span> (req_comp) {</div>
-<div class="line"><a name="l06466"></a><span class="lineno"> 6466</span>&#160; <span class="keywordflow">case</span> 4: output[3] = 1; <span class="comment">/* fallthrough */</span></div>
-<div class="line"><a name="l06467"></a><span class="lineno"> 6467</span>&#160; <span class="keywordflow">case</span> 3: output[0] = output[1] = output[2] = 0;</div>
-<div class="line"><a name="l06468"></a><span class="lineno"> 6468</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06469"></a><span class="lineno"> 6469</span>&#160; <span class="keywordflow">case</span> 2: output[1] = 1; <span class="comment">/* fallthrough */</span></div>
-<div class="line"><a name="l06470"></a><span class="lineno"> 6470</span>&#160; <span class="keywordflow">case</span> 1: output[0] = 0;</div>
-<div class="line"><a name="l06471"></a><span class="lineno"> 6471</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06472"></a><span class="lineno"> 6472</span>&#160; }</div>
-<div class="line"><a name="l06473"></a><span class="lineno"> 6473</span>&#160; }</div>
-<div class="line"><a name="l06474"></a><span class="lineno"> 6474</span>&#160;}</div>
-<div class="line"><a name="l06475"></a><span class="lineno"> 6475</span>&#160;</div>
-<div class="line"><a name="l06476"></a><span class="lineno"> 6476</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__hdr_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l06477"></a><span class="lineno"> 6477</span>&#160;{</div>
-<div class="line"><a name="l06478"></a><span class="lineno"> 6478</span>&#160; <span class="keywordtype">char</span> buffer[STBI__HDR_BUFLEN];</div>
-<div class="line"><a name="l06479"></a><span class="lineno"> 6479</span>&#160; <span class="keywordtype">char</span> *token;</div>
-<div class="line"><a name="l06480"></a><span class="lineno"> 6480</span>&#160; <span class="keywordtype">int</span> valid = 0;</div>
-<div class="line"><a name="l06481"></a><span class="lineno"> 6481</span>&#160; <span class="keywordtype">int</span> width, height;</div>
-<div class="line"><a name="l06482"></a><span class="lineno"> 6482</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *scanline;</div>
-<div class="line"><a name="l06483"></a><span class="lineno"> 6483</span>&#160; <span class="keywordtype">float</span> *hdr_data;</div>
-<div class="line"><a name="l06484"></a><span class="lineno"> 6484</span>&#160; <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l06485"></a><span class="lineno"> 6485</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> count, value;</div>
-<div class="line"><a name="l06486"></a><span class="lineno"> 6486</span>&#160; <span class="keywordtype">int</span> i, j, k, c1,c2, z;</div>
-<div class="line"><a name="l06487"></a><span class="lineno"> 6487</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *headerToken;</div>
-<div class="line"><a name="l06488"></a><span class="lineno"> 6488</span>&#160; STBI_NOTUSED(ri);</div>
-<div class="line"><a name="l06489"></a><span class="lineno"> 6489</span>&#160;</div>
-<div class="line"><a name="l06490"></a><span class="lineno"> 6490</span>&#160; <span class="comment">// Check identifier</span></div>
-<div class="line"><a name="l06491"></a><span class="lineno"> 6491</span>&#160; headerToken = stbi__hdr_gettoken(s,buffer);</div>
-<div class="line"><a name="l06492"></a><span class="lineno"> 6492</span>&#160; <span class="keywordflow">if</span> (strcmp(headerToken, <span class="stringliteral">&quot;#?RADIANCE&quot;</span>) != 0 &amp;&amp; strcmp(headerToken, <span class="stringliteral">&quot;#?RGBE&quot;</span>) != 0)</div>
-<div class="line"><a name="l06493"></a><span class="lineno"> 6493</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;not HDR&quot;</span>, <span class="stringliteral">&quot;Corrupt HDR image&quot;</span>);</div>
-<div class="line"><a name="l06494"></a><span class="lineno"> 6494</span>&#160;</div>
-<div class="line"><a name="l06495"></a><span class="lineno"> 6495</span>&#160; <span class="comment">// Parse header</span></div>
-<div class="line"><a name="l06496"></a><span class="lineno"> 6496</span>&#160; <span class="keywordflow">for</span>(;;) {</div>
-<div class="line"><a name="l06497"></a><span class="lineno"> 6497</span>&#160; token = stbi__hdr_gettoken(s,buffer);</div>
-<div class="line"><a name="l06498"></a><span class="lineno"> 6498</span>&#160; <span class="keywordflow">if</span> (token[0] == 0) <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06499"></a><span class="lineno"> 6499</span>&#160; <span class="keywordflow">if</span> (strcmp(token, <span class="stringliteral">&quot;FORMAT=32-bit_rle_rgbe&quot;</span>) == 0) valid = 1;</div>
-<div class="line"><a name="l06500"></a><span class="lineno"> 6500</span>&#160; }</div>
-<div class="line"><a name="l06501"></a><span class="lineno"> 6501</span>&#160;</div>
-<div class="line"><a name="l06502"></a><span class="lineno"> 6502</span>&#160; <span class="keywordflow">if</span> (!valid) <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported format&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
+<div class="line"><a name="l06451"></a><span class="lineno"> 6451</span>&#160; <span class="keywordtype">int</span> count, nleft, len;</div>
+<div class="line"><a name="l06452"></a><span class="lineno"> 6452</span>&#160;</div>
+<div class="line"><a name="l06453"></a><span class="lineno"> 6453</span>&#160; count = 0;</div>
+<div class="line"><a name="l06454"></a><span class="lineno"> 6454</span>&#160; <span class="keywordflow">while</span> ((nleft = pixelCount - count) &gt; 0) {</div>
+<div class="line"><a name="l06455"></a><span class="lineno"> 6455</span>&#160; len = stbi__get8(s);</div>
+<div class="line"><a name="l06456"></a><span class="lineno"> 6456</span>&#160; <span class="keywordflow">if</span> (len == 128) {</div>
+<div class="line"><a name="l06457"></a><span class="lineno"> 6457</span>&#160; <span class="comment">// No-op.</span></div>
+<div class="line"><a name="l06458"></a><span class="lineno"> 6458</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &lt; 128) {</div>
+<div class="line"><a name="l06459"></a><span class="lineno"> 6459</span>&#160; <span class="comment">// Copy next len+1 bytes literally.</span></div>
+<div class="line"><a name="l06460"></a><span class="lineno"> 6460</span>&#160; len++;</div>
+<div class="line"><a name="l06461"></a><span class="lineno"> 6461</span>&#160; <span class="keywordflow">if</span> (len &gt; nleft)</div>
+<div class="line"><a name="l06462"></a><span class="lineno"> 6462</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// corrupt data</span></div>
+<div class="line"><a name="l06463"></a><span class="lineno"> 6463</span>&#160; count += len;</div>
+<div class="line"><a name="l06464"></a><span class="lineno"> 6464</span>&#160; <span class="keywordflow">while</span> (len) {</div>
+<div class="line"><a name="l06465"></a><span class="lineno"> 6465</span>&#160; *p = stbi__get8(s);</div>
+<div class="line"><a name="l06466"></a><span class="lineno"> 6466</span>&#160; p += 4;</div>
+<div class="line"><a name="l06467"></a><span class="lineno"> 6467</span>&#160; len--;</div>
+<div class="line"><a name="l06468"></a><span class="lineno"> 6468</span>&#160; }</div>
+<div class="line"><a name="l06469"></a><span class="lineno"> 6469</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &gt; 128) {</div>
+<div class="line"><a name="l06470"></a><span class="lineno"> 6470</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> val;</div>
+<div class="line"><a name="l06471"></a><span class="lineno"> 6471</span>&#160; <span class="comment">// Next -len+1 bytes in the dest are replicated from next source</span></div>
+<div class="line"><a name="l06472"></a><span class="lineno"> 6472</span>&#160; <span class="comment">// byte. (Interpret len as a negative 8-bit int.)</span></div>
+<div class="line"><a name="l06473"></a><span class="lineno"> 6473</span>&#160; len = 257 - len;</div>
+<div class="line"><a name="l06474"></a><span class="lineno"> 6474</span>&#160; <span class="keywordflow">if</span> (len &gt; nleft)</div>
+<div class="line"><a name="l06475"></a><span class="lineno"> 6475</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// corrupt data</span></div>
+<div class="line"><a name="l06476"></a><span class="lineno"> 6476</span>&#160; val = stbi__get8(s);</div>
+<div class="line"><a name="l06477"></a><span class="lineno"> 6477</span>&#160; count += len;</div>
+<div class="line"><a name="l06478"></a><span class="lineno"> 6478</span>&#160; <span class="keywordflow">while</span> (len) {</div>
+<div class="line"><a name="l06479"></a><span class="lineno"> 6479</span>&#160; *p = val;</div>
+<div class="line"><a name="l06480"></a><span class="lineno"> 6480</span>&#160; p += 4;</div>
+<div class="line"><a name="l06481"></a><span class="lineno"> 6481</span>&#160; len--;</div>
+<div class="line"><a name="l06482"></a><span class="lineno"> 6482</span>&#160; }</div>
+<div class="line"><a name="l06483"></a><span class="lineno"> 6483</span>&#160; }</div>
+<div class="line"><a name="l06484"></a><span class="lineno"> 6484</span>&#160; }</div>
+<div class="line"><a name="l06485"></a><span class="lineno"> 6485</span>&#160;</div>
+<div class="line"><a name="l06486"></a><span class="lineno"> 6486</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l06487"></a><span class="lineno"> 6487</span>&#160;}</div>
+<div class="line"><a name="l06488"></a><span class="lineno"> 6488</span>&#160;</div>
+<div class="line"><a name="l06489"></a><span class="lineno"> 6489</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__psd_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l06490"></a><span class="lineno"> 6490</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri, <span class="keywordtype">int</span> bpc)</div>
+<div class="line"><a name="l06491"></a><span class="lineno"> 6491</span>&#160;{</div>
+<div class="line"><a name="l06492"></a><span class="lineno"> 6492</span>&#160; <span class="keywordtype">int</span> pixelCount;</div>
+<div class="line"><a name="l06493"></a><span class="lineno"> 6493</span>&#160; <span class="keywordtype">int</span> channelCount, compression;</div>
+<div class="line"><a name="l06494"></a><span class="lineno"> 6494</span>&#160; <span class="keywordtype">int</span> channel, i;</div>
+<div class="line"><a name="l06495"></a><span class="lineno"> 6495</span>&#160; <span class="keywordtype">int</span> bitdepth;</div>
+<div class="line"><a name="l06496"></a><span class="lineno"> 6496</span>&#160; <span class="keywordtype">int</span> w, h;</div>
+<div class="line"><a name="l06497"></a><span class="lineno"> 6497</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
+<div class="line"><a name="l06498"></a><span class="lineno"> 6498</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l06499"></a><span class="lineno"> 6499</span>&#160;</div>
+<div class="line"><a name="l06500"></a><span class="lineno"> 6500</span>&#160; <span class="comment">// Check identifier</span></div>
+<div class="line"><a name="l06501"></a><span class="lineno"> 6501</span>&#160; <span class="keywordflow">if</span> (stbi__get32be(s) != 0x38425053) <span class="comment">// &quot;8BPS&quot;</span></div>
+<div class="line"><a name="l06502"></a><span class="lineno"> 6502</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;not PSD&quot;</span>, <span class="stringliteral">&quot;Corrupt PSD image&quot;</span>);</div>
<div class="line"><a name="l06503"></a><span class="lineno"> 6503</span>&#160;</div>
-<div class="line"><a name="l06504"></a><span class="lineno"> 6504</span>&#160; <span class="comment">// Parse width and height</span></div>
-<div class="line"><a name="l06505"></a><span class="lineno"> 6505</span>&#160; <span class="comment">// can&#39;t use sscanf() if we&#39;re not using stdio!</span></div>
-<div class="line"><a name="l06506"></a><span class="lineno"> 6506</span>&#160; token = stbi__hdr_gettoken(s,buffer);</div>
-<div class="line"><a name="l06507"></a><span class="lineno"> 6507</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;-Y &quot;</span>, 3)) <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported data layout&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
-<div class="line"><a name="l06508"></a><span class="lineno"> 6508</span>&#160; token += 3;</div>
-<div class="line"><a name="l06509"></a><span class="lineno"> 6509</span>&#160; height = (int) strtol(token, &amp;token, 10);</div>
-<div class="line"><a name="l06510"></a><span class="lineno"> 6510</span>&#160; <span class="keywordflow">while</span> (*token == <span class="charliteral">&#39; &#39;</span>) ++token;</div>
-<div class="line"><a name="l06511"></a><span class="lineno"> 6511</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;+X &quot;</span>, 3)) <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported data layout&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
-<div class="line"><a name="l06512"></a><span class="lineno"> 6512</span>&#160; token += 3;</div>
-<div class="line"><a name="l06513"></a><span class="lineno"> 6513</span>&#160; width = (int) strtol(token, NULL, 10);</div>
-<div class="line"><a name="l06514"></a><span class="lineno"> 6514</span>&#160;</div>
-<div class="line"><a name="l06515"></a><span class="lineno"> 6515</span>&#160; *x = width;</div>
-<div class="line"><a name="l06516"></a><span class="lineno"> 6516</span>&#160; *y = height;</div>
+<div class="line"><a name="l06504"></a><span class="lineno"> 6504</span>&#160; <span class="comment">// Check file type version.</span></div>
+<div class="line"><a name="l06505"></a><span class="lineno"> 6505</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 1)</div>
+<div class="line"><a name="l06506"></a><span class="lineno"> 6506</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong version&quot;</span>,</div>
+<div class="line"><a name="l06507"></a><span class="lineno"> 6507</span>&#160; <span class="stringliteral">&quot;Unsupported version of PSD image&quot;</span>);</div>
+<div class="line"><a name="l06508"></a><span class="lineno"> 6508</span>&#160;</div>
+<div class="line"><a name="l06509"></a><span class="lineno"> 6509</span>&#160; <span class="comment">// Skip 6 reserved bytes.</span></div>
+<div class="line"><a name="l06510"></a><span class="lineno"> 6510</span>&#160; stbi__skip(s, 6);</div>
+<div class="line"><a name="l06511"></a><span class="lineno"> 6511</span>&#160;</div>
+<div class="line"><a name="l06512"></a><span class="lineno"> 6512</span>&#160; <span class="comment">// Read the number of channels (R, G, B, A, etc).</span></div>
+<div class="line"><a name="l06513"></a><span class="lineno"> 6513</span>&#160; channelCount = stbi__get16be(s);</div>
+<div class="line"><a name="l06514"></a><span class="lineno"> 6514</span>&#160; <span class="keywordflow">if</span> (channelCount &lt; 0 || channelCount &gt; 16)</div>
+<div class="line"><a name="l06515"></a><span class="lineno"> 6515</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong channel count&quot;</span>,</div>
+<div class="line"><a name="l06516"></a><span class="lineno"> 6516</span>&#160; <span class="stringliteral">&quot;Unsupported number of channels in PSD image&quot;</span>);</div>
<div class="line"><a name="l06517"></a><span class="lineno"> 6517</span>&#160;</div>
-<div class="line"><a name="l06518"></a><span class="lineno"> 6518</span>&#160; <span class="keywordflow">if</span> (comp) *comp = 3;</div>
-<div class="line"><a name="l06519"></a><span class="lineno"> 6519</span>&#160; <span class="keywordflow">if</span> (req_comp == 0) req_comp = 3;</div>
-<div class="line"><a name="l06520"></a><span class="lineno"> 6520</span>&#160;</div>
-<div class="line"><a name="l06521"></a><span class="lineno"> 6521</span>&#160; <span class="keywordflow">if</span> (!stbi__mad4sizes_valid(width, height, req_comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0))</div>
-<div class="line"><a name="l06522"></a><span class="lineno"> 6522</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;HDR image is too large&quot;</span>);</div>
-<div class="line"><a name="l06523"></a><span class="lineno"> 6523</span>&#160;</div>
-<div class="line"><a name="l06524"></a><span class="lineno"> 6524</span>&#160; <span class="comment">// Read data</span></div>
-<div class="line"><a name="l06525"></a><span class="lineno"> 6525</span>&#160; hdr_data = (<span class="keywordtype">float</span> *) stbi__malloc_mad4(width, height, req_comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0);</div>
-<div class="line"><a name="l06526"></a><span class="lineno"> 6526</span>&#160; <span class="keywordflow">if</span> (!hdr_data)</div>
-<div class="line"><a name="l06527"></a><span class="lineno"> 6527</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l06528"></a><span class="lineno"> 6528</span>&#160;</div>
-<div class="line"><a name="l06529"></a><span class="lineno"> 6529</span>&#160; <span class="comment">// Load image data</span></div>
-<div class="line"><a name="l06530"></a><span class="lineno"> 6530</span>&#160; <span class="comment">// image data is stored as some number of sca</span></div>
-<div class="line"><a name="l06531"></a><span class="lineno"> 6531</span>&#160; <span class="keywordflow">if</span> ( width &lt; 8 || width &gt;= 32768) {</div>
-<div class="line"><a name="l06532"></a><span class="lineno"> 6532</span>&#160; <span class="comment">// Read flat data</span></div>
-<div class="line"><a name="l06533"></a><span class="lineno"> 6533</span>&#160; <span class="keywordflow">for</span> (j=0; j &lt; height; ++j) {</div>
-<div class="line"><a name="l06534"></a><span class="lineno"> 6534</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; width; ++i) {</div>
-<div class="line"><a name="l06535"></a><span class="lineno"> 6535</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> rgbe[4];</div>
-<div class="line"><a name="l06536"></a><span class="lineno"> 6536</span>&#160; main_decode_loop:</div>
-<div class="line"><a name="l06537"></a><span class="lineno"> 6537</span>&#160; stbi__getn(s, rgbe, 4);</div>
-<div class="line"><a name="l06538"></a><span class="lineno"> 6538</span>&#160; stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp);</div>
-<div class="line"><a name="l06539"></a><span class="lineno"> 6539</span>&#160; }</div>
-<div class="line"><a name="l06540"></a><span class="lineno"> 6540</span>&#160; }</div>
-<div class="line"><a name="l06541"></a><span class="lineno"> 6541</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06542"></a><span class="lineno"> 6542</span>&#160; <span class="comment">// Read RLE-encoded data</span></div>
-<div class="line"><a name="l06543"></a><span class="lineno"> 6543</span>&#160; scanline = NULL;</div>
-<div class="line"><a name="l06544"></a><span class="lineno"> 6544</span>&#160;</div>
-<div class="line"><a name="l06545"></a><span class="lineno"> 6545</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; height; ++j) {</div>
-<div class="line"><a name="l06546"></a><span class="lineno"> 6546</span>&#160; c1 = stbi__get8(s);</div>
-<div class="line"><a name="l06547"></a><span class="lineno"> 6547</span>&#160; c2 = stbi__get8(s);</div>
-<div class="line"><a name="l06548"></a><span class="lineno"> 6548</span>&#160; len = stbi__get8(s);</div>
-<div class="line"><a name="l06549"></a><span class="lineno"> 6549</span>&#160; <span class="keywordflow">if</span> (c1 != 2 || c2 != 2 || (len &amp; 0x80)) {</div>
-<div class="line"><a name="l06550"></a><span class="lineno"> 6550</span>&#160; <span class="comment">// not run-length encoded, so we have to actually use THIS data as a decoded</span></div>
-<div class="line"><a name="l06551"></a><span class="lineno"> 6551</span>&#160; <span class="comment">// pixel (note this can&#39;t be a valid pixel--one of RGB must be &gt;= 128)</span></div>
-<div class="line"><a name="l06552"></a><span class="lineno"> 6552</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> rgbe[4];</div>
-<div class="line"><a name="l06553"></a><span class="lineno"> 6553</span>&#160; rgbe[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) c1;</div>
-<div class="line"><a name="l06554"></a><span class="lineno"> 6554</span>&#160; rgbe[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) c2;</div>
-<div class="line"><a name="l06555"></a><span class="lineno"> 6555</span>&#160; rgbe[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) len;</div>
-<div class="line"><a name="l06556"></a><span class="lineno"> 6556</span>&#160; rgbe[3] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>) stbi__get8(s);</div>
-<div class="line"><a name="l06557"></a><span class="lineno"> 6557</span>&#160; stbi__hdr_convert(hdr_data, rgbe, req_comp);</div>
-<div class="line"><a name="l06558"></a><span class="lineno"> 6558</span>&#160; i = 1;</div>
-<div class="line"><a name="l06559"></a><span class="lineno"> 6559</span>&#160; j = 0;</div>
-<div class="line"><a name="l06560"></a><span class="lineno"> 6560</span>&#160; STBI_FREE(scanline);</div>
-<div class="line"><a name="l06561"></a><span class="lineno"> 6561</span>&#160; <span class="keywordflow">goto</span> main_decode_loop; <span class="comment">// yes, this makes no sense</span></div>
-<div class="line"><a name="l06562"></a><span class="lineno"> 6562</span>&#160; }</div>
-<div class="line"><a name="l06563"></a><span class="lineno"> 6563</span>&#160; len &lt;&lt;= 8;</div>
-<div class="line"><a name="l06564"></a><span class="lineno"> 6564</span>&#160; len |= stbi__get8(s);</div>
-<div class="line"><a name="l06565"></a><span class="lineno"> 6565</span>&#160; <span class="keywordflow">if</span> (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;invalid decoded scanline length&quot;</span>, <span class="stringliteral">&quot;corrupt HDR&quot;</span>); }</div>
-<div class="line"><a name="l06566"></a><span class="lineno"> 6566</span>&#160; <span class="keywordflow">if</span> (scanline == NULL) {</div>
-<div class="line"><a name="l06567"></a><span class="lineno"> 6567</span>&#160; scanline = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad2(width, 4, 0);</div>
-<div class="line"><a name="l06568"></a><span class="lineno"> 6568</span>&#160; <span class="keywordflow">if</span> (!scanline) {</div>
-<div class="line"><a name="l06569"></a><span class="lineno"> 6569</span>&#160; STBI_FREE(hdr_data);</div>
-<div class="line"><a name="l06570"></a><span class="lineno"> 6570</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l06571"></a><span class="lineno"> 6571</span>&#160; }</div>
-<div class="line"><a name="l06572"></a><span class="lineno"> 6572</span>&#160; }</div>
-<div class="line"><a name="l06573"></a><span class="lineno"> 6573</span>&#160;</div>
-<div class="line"><a name="l06574"></a><span class="lineno"> 6574</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; 4; ++k) {</div>
-<div class="line"><a name="l06575"></a><span class="lineno"> 6575</span>&#160; <span class="keywordtype">int</span> nleft;</div>
-<div class="line"><a name="l06576"></a><span class="lineno"> 6576</span>&#160; i = 0;</div>
-<div class="line"><a name="l06577"></a><span class="lineno"> 6577</span>&#160; <span class="keywordflow">while</span> ((nleft = width - i) &gt; 0) {</div>
-<div class="line"><a name="l06578"></a><span class="lineno"> 6578</span>&#160; count = stbi__get8(s);</div>
-<div class="line"><a name="l06579"></a><span class="lineno"> 6579</span>&#160; <span class="keywordflow">if</span> (count &gt; 128) {</div>
-<div class="line"><a name="l06580"></a><span class="lineno"> 6580</span>&#160; <span class="comment">// Run</span></div>
-<div class="line"><a name="l06581"></a><span class="lineno"> 6581</span>&#160; value = stbi__get8(s);</div>
-<div class="line"><a name="l06582"></a><span class="lineno"> 6582</span>&#160; count -= 128;</div>
-<div class="line"><a name="l06583"></a><span class="lineno"> 6583</span>&#160; <span class="keywordflow">if</span> (count &gt; nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;corrupt&quot;</span>, <span class="stringliteral">&quot;bad RLE data in HDR&quot;</span>); }</div>
-<div class="line"><a name="l06584"></a><span class="lineno"> 6584</span>&#160; <span class="keywordflow">for</span> (z = 0; z &lt; count; ++z)</div>
-<div class="line"><a name="l06585"></a><span class="lineno"> 6585</span>&#160; scanline[i++ * 4 + k] = value;</div>
-<div class="line"><a name="l06586"></a><span class="lineno"> 6586</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l06587"></a><span class="lineno"> 6587</span>&#160; <span class="comment">// Dump</span></div>
-<div class="line"><a name="l06588"></a><span class="lineno"> 6588</span>&#160; <span class="keywordflow">if</span> (count &gt; nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;corrupt&quot;</span>, <span class="stringliteral">&quot;bad RLE data in HDR&quot;</span>); }</div>
-<div class="line"><a name="l06589"></a><span class="lineno"> 6589</span>&#160; <span class="keywordflow">for</span> (z = 0; z &lt; count; ++z)</div>
-<div class="line"><a name="l06590"></a><span class="lineno"> 6590</span>&#160; scanline[i++ * 4 + k] = stbi__get8(s);</div>
-<div class="line"><a name="l06591"></a><span class="lineno"> 6591</span>&#160; }</div>
-<div class="line"><a name="l06592"></a><span class="lineno"> 6592</span>&#160; }</div>
-<div class="line"><a name="l06593"></a><span class="lineno"> 6593</span>&#160; }</div>
-<div class="line"><a name="l06594"></a><span class="lineno"> 6594</span>&#160; <span class="keywordflow">for</span> (i=0; i &lt; width; ++i)</div>
-<div class="line"><a name="l06595"></a><span class="lineno"> 6595</span>&#160; stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp);</div>
-<div class="line"><a name="l06596"></a><span class="lineno"> 6596</span>&#160; }</div>
-<div class="line"><a name="l06597"></a><span class="lineno"> 6597</span>&#160; <span class="keywordflow">if</span> (scanline)</div>
-<div class="line"><a name="l06598"></a><span class="lineno"> 6598</span>&#160; STBI_FREE(scanline);</div>
-<div class="line"><a name="l06599"></a><span class="lineno"> 6599</span>&#160; }</div>
-<div class="line"><a name="l06600"></a><span class="lineno"> 6600</span>&#160;</div>
-<div class="line"><a name="l06601"></a><span class="lineno"> 6601</span>&#160; <span class="keywordflow">return</span> hdr_data;</div>
-<div class="line"><a name="l06602"></a><span class="lineno"> 6602</span>&#160;}</div>
-<div class="line"><a name="l06603"></a><span class="lineno"> 6603</span>&#160;</div>
-<div class="line"><a name="l06604"></a><span class="lineno"> 6604</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06605"></a><span class="lineno"> 6605</span>&#160;{</div>
-<div class="line"><a name="l06606"></a><span class="lineno"> 6606</span>&#160; <span class="keywordtype">char</span> buffer[STBI__HDR_BUFLEN];</div>
-<div class="line"><a name="l06607"></a><span class="lineno"> 6607</span>&#160; <span class="keywordtype">char</span> *token;</div>
-<div class="line"><a name="l06608"></a><span class="lineno"> 6608</span>&#160; <span class="keywordtype">int</span> valid = 0;</div>
-<div class="line"><a name="l06609"></a><span class="lineno"> 6609</span>&#160; <span class="keywordtype">int</span> dummy;</div>
-<div class="line"><a name="l06610"></a><span class="lineno"> 6610</span>&#160;</div>
-<div class="line"><a name="l06611"></a><span class="lineno"> 6611</span>&#160; <span class="keywordflow">if</span> (!x) x = &amp;dummy;</div>
-<div class="line"><a name="l06612"></a><span class="lineno"> 6612</span>&#160; <span class="keywordflow">if</span> (!y) y = &amp;dummy;</div>
-<div class="line"><a name="l06613"></a><span class="lineno"> 6613</span>&#160; <span class="keywordflow">if</span> (!comp) comp = &amp;dummy;</div>
-<div class="line"><a name="l06614"></a><span class="lineno"> 6614</span>&#160;</div>
-<div class="line"><a name="l06615"></a><span class="lineno"> 6615</span>&#160; <span class="keywordflow">if</span> (stbi__hdr_test(s) == 0) {</div>
-<div class="line"><a name="l06616"></a><span class="lineno"> 6616</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06617"></a><span class="lineno"> 6617</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06618"></a><span class="lineno"> 6618</span>&#160; }</div>
-<div class="line"><a name="l06619"></a><span class="lineno"> 6619</span>&#160;</div>
-<div class="line"><a name="l06620"></a><span class="lineno"> 6620</span>&#160; <span class="keywordflow">for</span>(;;) {</div>
-<div class="line"><a name="l06621"></a><span class="lineno"> 6621</span>&#160; token = stbi__hdr_gettoken(s,buffer);</div>
-<div class="line"><a name="l06622"></a><span class="lineno"> 6622</span>&#160; <span class="keywordflow">if</span> (token[0] == 0) <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06623"></a><span class="lineno"> 6623</span>&#160; <span class="keywordflow">if</span> (strcmp(token, <span class="stringliteral">&quot;FORMAT=32-bit_rle_rgbe&quot;</span>) == 0) valid = 1;</div>
-<div class="line"><a name="l06624"></a><span class="lineno"> 6624</span>&#160; }</div>
-<div class="line"><a name="l06625"></a><span class="lineno"> 6625</span>&#160;</div>
-<div class="line"><a name="l06626"></a><span class="lineno"> 6626</span>&#160; <span class="keywordflow">if</span> (!valid) {</div>
-<div class="line"><a name="l06627"></a><span class="lineno"> 6627</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06628"></a><span class="lineno"> 6628</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06629"></a><span class="lineno"> 6629</span>&#160; }</div>
-<div class="line"><a name="l06630"></a><span class="lineno"> 6630</span>&#160; token = stbi__hdr_gettoken(s,buffer);</div>
-<div class="line"><a name="l06631"></a><span class="lineno"> 6631</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;-Y &quot;</span>, 3)) {</div>
-<div class="line"><a name="l06632"></a><span class="lineno"> 6632</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06633"></a><span class="lineno"> 6633</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06634"></a><span class="lineno"> 6634</span>&#160; }</div>
-<div class="line"><a name="l06635"></a><span class="lineno"> 6635</span>&#160; token += 3;</div>
-<div class="line"><a name="l06636"></a><span class="lineno"> 6636</span>&#160; *y = (int) strtol(token, &amp;token, 10);</div>
-<div class="line"><a name="l06637"></a><span class="lineno"> 6637</span>&#160; <span class="keywordflow">while</span> (*token == <span class="charliteral">&#39; &#39;</span>) ++token;</div>
-<div class="line"><a name="l06638"></a><span class="lineno"> 6638</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;+X &quot;</span>, 3)) {</div>
-<div class="line"><a name="l06639"></a><span class="lineno"> 6639</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06640"></a><span class="lineno"> 6640</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06641"></a><span class="lineno"> 6641</span>&#160; }</div>
-<div class="line"><a name="l06642"></a><span class="lineno"> 6642</span>&#160; token += 3;</div>
-<div class="line"><a name="l06643"></a><span class="lineno"> 6643</span>&#160; *x = (int) strtol(token, NULL, 10);</div>
-<div class="line"><a name="l06644"></a><span class="lineno"> 6644</span>&#160; *comp = 3;</div>
-<div class="line"><a name="l06645"></a><span class="lineno"> 6645</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06646"></a><span class="lineno"> 6646</span>&#160;}</div>
-<div class="line"><a name="l06647"></a><span class="lineno"> 6647</span>&#160;<span class="preprocessor">#endif // STBI_NO_HDR</span></div>
-<div class="line"><a name="l06648"></a><span class="lineno"> 6648</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06649"></a><span class="lineno"> 6649</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l06650"></a><span class="lineno"> 6650</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06651"></a><span class="lineno"> 6651</span>&#160;{</div>
-<div class="line"><a name="l06652"></a><span class="lineno"> 6652</span>&#160; <span class="keywordtype">void</span> *p;</div>
-<div class="line"><a name="l06653"></a><span class="lineno"> 6653</span>&#160; stbi__bmp_data info;</div>
-<div class="line"><a name="l06654"></a><span class="lineno"> 6654</span>&#160;</div>
-<div class="line"><a name="l06655"></a><span class="lineno"> 6655</span>&#160; info.all_a = 255;</div>
-<div class="line"><a name="l06656"></a><span class="lineno"> 6656</span>&#160; p = stbi__bmp_parse_header(s, &amp;info);</div>
-<div class="line"><a name="l06657"></a><span class="lineno"> 6657</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06658"></a><span class="lineno"> 6658</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
-<div class="line"><a name="l06659"></a><span class="lineno"> 6659</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06660"></a><span class="lineno"> 6660</span>&#160; <span class="keywordflow">if</span> (x) *x = s-&gt;img_x;</div>
-<div class="line"><a name="l06661"></a><span class="lineno"> 6661</span>&#160; <span class="keywordflow">if</span> (y) *y = s-&gt;img_y;</div>
-<div class="line"><a name="l06662"></a><span class="lineno"> 6662</span>&#160; <span class="keywordflow">if</span> (comp) *comp = info.ma ? 4 : 3;</div>
-<div class="line"><a name="l06663"></a><span class="lineno"> 6663</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06664"></a><span class="lineno"> 6664</span>&#160;}</div>
-<div class="line"><a name="l06665"></a><span class="lineno"> 6665</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06666"></a><span class="lineno"> 6666</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06667"></a><span class="lineno"> 6667</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
-<div class="line"><a name="l06668"></a><span class="lineno"> 6668</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06669"></a><span class="lineno"> 6669</span>&#160;{</div>
-<div class="line"><a name="l06670"></a><span class="lineno"> 6670</span>&#160; <span class="keywordtype">int</span> channelCount, dummy;</div>
-<div class="line"><a name="l06671"></a><span class="lineno"> 6671</span>&#160; <span class="keywordflow">if</span> (!x) x = &amp;dummy;</div>
-<div class="line"><a name="l06672"></a><span class="lineno"> 6672</span>&#160; <span class="keywordflow">if</span> (!y) y = &amp;dummy;</div>
-<div class="line"><a name="l06673"></a><span class="lineno"> 6673</span>&#160; <span class="keywordflow">if</span> (!comp) comp = &amp;dummy;</div>
-<div class="line"><a name="l06674"></a><span class="lineno"> 6674</span>&#160; <span class="keywordflow">if</span> (stbi__get32be(s) != 0x38425053) {</div>
-<div class="line"><a name="l06675"></a><span class="lineno"> 6675</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06676"></a><span class="lineno"> 6676</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06677"></a><span class="lineno"> 6677</span>&#160; }</div>
-<div class="line"><a name="l06678"></a><span class="lineno"> 6678</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 1) {</div>
-<div class="line"><a name="l06679"></a><span class="lineno"> 6679</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06680"></a><span class="lineno"> 6680</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06681"></a><span class="lineno"> 6681</span>&#160; }</div>
-<div class="line"><a name="l06682"></a><span class="lineno"> 6682</span>&#160; stbi__skip(s, 6);</div>
-<div class="line"><a name="l06683"></a><span class="lineno"> 6683</span>&#160; channelCount = stbi__get16be(s);</div>
-<div class="line"><a name="l06684"></a><span class="lineno"> 6684</span>&#160; <span class="keywordflow">if</span> (channelCount &lt; 0 || channelCount &gt; 16) {</div>
-<div class="line"><a name="l06685"></a><span class="lineno"> 6685</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06686"></a><span class="lineno"> 6686</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06687"></a><span class="lineno"> 6687</span>&#160; }</div>
-<div class="line"><a name="l06688"></a><span class="lineno"> 6688</span>&#160; *y = stbi__get32be(s);</div>
-<div class="line"><a name="l06689"></a><span class="lineno"> 6689</span>&#160; *x = stbi__get32be(s);</div>
-<div class="line"><a name="l06690"></a><span class="lineno"> 6690</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 8) {</div>
-<div class="line"><a name="l06691"></a><span class="lineno"> 6691</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06692"></a><span class="lineno"> 6692</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06693"></a><span class="lineno"> 6693</span>&#160; }</div>
-<div class="line"><a name="l06694"></a><span class="lineno"> 6694</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 3) {</div>
-<div class="line"><a name="l06695"></a><span class="lineno"> 6695</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06696"></a><span class="lineno"> 6696</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06697"></a><span class="lineno"> 6697</span>&#160; }</div>
-<div class="line"><a name="l06698"></a><span class="lineno"> 6698</span>&#160; *comp = 4;</div>
-<div class="line"><a name="l06699"></a><span class="lineno"> 6699</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06700"></a><span class="lineno"> 6700</span>&#160;}</div>
-<div class="line"><a name="l06701"></a><span class="lineno"> 6701</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06702"></a><span class="lineno"> 6702</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06703"></a><span class="lineno"> 6703</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
-<div class="line"><a name="l06704"></a><span class="lineno"> 6704</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06705"></a><span class="lineno"> 6705</span>&#160;{</div>
-<div class="line"><a name="l06706"></a><span class="lineno"> 6706</span>&#160; <span class="keywordtype">int</span> act_comp=0,num_packets=0,chained,dummy;</div>
-<div class="line"><a name="l06707"></a><span class="lineno"> 6707</span>&#160; stbi__pic_packet packets[10];</div>
-<div class="line"><a name="l06708"></a><span class="lineno"> 6708</span>&#160;</div>
-<div class="line"><a name="l06709"></a><span class="lineno"> 6709</span>&#160; <span class="keywordflow">if</span> (!x) x = &amp;dummy;</div>
-<div class="line"><a name="l06710"></a><span class="lineno"> 6710</span>&#160; <span class="keywordflow">if</span> (!y) y = &amp;dummy;</div>
-<div class="line"><a name="l06711"></a><span class="lineno"> 6711</span>&#160; <span class="keywordflow">if</span> (!comp) comp = &amp;dummy;</div>
-<div class="line"><a name="l06712"></a><span class="lineno"> 6712</span>&#160;</div>
-<div class="line"><a name="l06713"></a><span class="lineno"> 6713</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s,<span class="stringliteral">&quot;\x53\x80\xF6\x34&quot;</span>)) {</div>
-<div class="line"><a name="l06714"></a><span class="lineno"> 6714</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06715"></a><span class="lineno"> 6715</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06716"></a><span class="lineno"> 6716</span>&#160; }</div>
+<div class="line"><a name="l06518"></a><span class="lineno"> 6518</span>&#160; <span class="comment">// Read the rows and columns of the image.</span></div>
+<div class="line"><a name="l06519"></a><span class="lineno"> 6519</span>&#160; h = stbi__get32be(s);</div>
+<div class="line"><a name="l06520"></a><span class="lineno"> 6520</span>&#160; w = stbi__get32be(s);</div>
+<div class="line"><a name="l06521"></a><span class="lineno"> 6521</span>&#160;</div>
+<div class="line"><a name="l06522"></a><span class="lineno"> 6522</span>&#160; <span class="comment">// Make sure the depth is 8 bits.</span></div>
+<div class="line"><a name="l06523"></a><span class="lineno"> 6523</span>&#160; bitdepth = stbi__get16be(s);</div>
+<div class="line"><a name="l06524"></a><span class="lineno"> 6524</span>&#160; <span class="keywordflow">if</span> (bitdepth != 8 &amp;&amp; bitdepth != 16)</div>
+<div class="line"><a name="l06525"></a><span class="lineno"> 6525</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unsupported bit depth&quot;</span>,</div>
+<div class="line"><a name="l06526"></a><span class="lineno"> 6526</span>&#160; <span class="stringliteral">&quot;PSD bit depth is not 8 or 16 bit&quot;</span>);</div>
+<div class="line"><a name="l06527"></a><span class="lineno"> 6527</span>&#160;</div>
+<div class="line"><a name="l06528"></a><span class="lineno"> 6528</span>&#160; <span class="comment">// Make sure the color mode is RGB.</span></div>
+<div class="line"><a name="l06529"></a><span class="lineno"> 6529</span>&#160; <span class="comment">// Valid options are:</span></div>
+<div class="line"><a name="l06530"></a><span class="lineno"> 6530</span>&#160; <span class="comment">// 0: Bitmap</span></div>
+<div class="line"><a name="l06531"></a><span class="lineno"> 6531</span>&#160; <span class="comment">// 1: Grayscale</span></div>
+<div class="line"><a name="l06532"></a><span class="lineno"> 6532</span>&#160; <span class="comment">// 2: Indexed color</span></div>
+<div class="line"><a name="l06533"></a><span class="lineno"> 6533</span>&#160; <span class="comment">// 3: RGB color</span></div>
+<div class="line"><a name="l06534"></a><span class="lineno"> 6534</span>&#160; <span class="comment">// 4: CMYK color</span></div>
+<div class="line"><a name="l06535"></a><span class="lineno"> 6535</span>&#160; <span class="comment">// 7: Multichannel</span></div>
+<div class="line"><a name="l06536"></a><span class="lineno"> 6536</span>&#160; <span class="comment">// 8: Duotone</span></div>
+<div class="line"><a name="l06537"></a><span class="lineno"> 6537</span>&#160; <span class="comment">// 9: Lab color</span></div>
+<div class="line"><a name="l06538"></a><span class="lineno"> 6538</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 3)</div>
+<div class="line"><a name="l06539"></a><span class="lineno"> 6539</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;wrong color format&quot;</span>,</div>
+<div class="line"><a name="l06540"></a><span class="lineno"> 6540</span>&#160; <span class="stringliteral">&quot;PSD is not in RGB color format&quot;</span>);</div>
+<div class="line"><a name="l06541"></a><span class="lineno"> 6541</span>&#160;</div>
+<div class="line"><a name="l06542"></a><span class="lineno"> 6542</span>&#160; <span class="comment">// Skip the Mode Data. (It&#39;s the palette for indexed color; other info for</span></div>
+<div class="line"><a name="l06543"></a><span class="lineno"> 6543</span>&#160; <span class="comment">// other modes.)</span></div>
+<div class="line"><a name="l06544"></a><span class="lineno"> 6544</span>&#160; stbi__skip(s, stbi__get32be(s));</div>
+<div class="line"><a name="l06545"></a><span class="lineno"> 6545</span>&#160;</div>
+<div class="line"><a name="l06546"></a><span class="lineno"> 6546</span>&#160; <span class="comment">// Skip the image resources. (resolution, pen tool paths, etc)</span></div>
+<div class="line"><a name="l06547"></a><span class="lineno"> 6547</span>&#160; stbi__skip(s, stbi__get32be(s));</div>
+<div class="line"><a name="l06548"></a><span class="lineno"> 6548</span>&#160;</div>
+<div class="line"><a name="l06549"></a><span class="lineno"> 6549</span>&#160; <span class="comment">// Skip the reserved data.</span></div>
+<div class="line"><a name="l06550"></a><span class="lineno"> 6550</span>&#160; stbi__skip(s, stbi__get32be(s));</div>
+<div class="line"><a name="l06551"></a><span class="lineno"> 6551</span>&#160;</div>
+<div class="line"><a name="l06552"></a><span class="lineno"> 6552</span>&#160; <span class="comment">// Find out if the data is compressed.</span></div>
+<div class="line"><a name="l06553"></a><span class="lineno"> 6553</span>&#160; <span class="comment">// Known values:</span></div>
+<div class="line"><a name="l06554"></a><span class="lineno"> 6554</span>&#160; <span class="comment">// 0: no compression</span></div>
+<div class="line"><a name="l06555"></a><span class="lineno"> 6555</span>&#160; <span class="comment">// 1: RLE compressed</span></div>
+<div class="line"><a name="l06556"></a><span class="lineno"> 6556</span>&#160; compression = stbi__get16be(s);</div>
+<div class="line"><a name="l06557"></a><span class="lineno"> 6557</span>&#160; <span class="keywordflow">if</span> (compression &gt; 1)</div>
+<div class="line"><a name="l06558"></a><span class="lineno"> 6558</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad compression&quot;</span>,</div>
+<div class="line"><a name="l06559"></a><span class="lineno"> 6559</span>&#160; <span class="stringliteral">&quot;PSD has an unknown compression format&quot;</span>);</div>
+<div class="line"><a name="l06560"></a><span class="lineno"> 6560</span>&#160;</div>
+<div class="line"><a name="l06561"></a><span class="lineno"> 6561</span>&#160; <span class="comment">// Check size</span></div>
+<div class="line"><a name="l06562"></a><span class="lineno"> 6562</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(4, w, h, 0))</div>
+<div class="line"><a name="l06563"></a><span class="lineno"> 6563</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;Corrupt PSD&quot;</span>);</div>
+<div class="line"><a name="l06564"></a><span class="lineno"> 6564</span>&#160;</div>
+<div class="line"><a name="l06565"></a><span class="lineno"> 6565</span>&#160; <span class="comment">// Create the destination image.</span></div>
+<div class="line"><a name="l06566"></a><span class="lineno"> 6566</span>&#160;</div>
+<div class="line"><a name="l06567"></a><span class="lineno"> 6567</span>&#160; <span class="keywordflow">if</span> (!compression &amp;&amp; bitdepth == 16 &amp;&amp; bpc == 16) {</div>
+<div class="line"><a name="l06568"></a><span class="lineno"> 6568</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(8, w, h, 0);</div>
+<div class="line"><a name="l06569"></a><span class="lineno"> 6569</span>&#160; ri-&gt;bits_per_channel = 16;</div>
+<div class="line"><a name="l06570"></a><span class="lineno"> 6570</span>&#160; } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l06571"></a><span class="lineno"> 6571</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc(4 * w * h);</div>
+<div class="line"><a name="l06572"></a><span class="lineno"> 6572</span>&#160;</div>
+<div class="line"><a name="l06573"></a><span class="lineno"> 6573</span>&#160; <span class="keywordflow">if</span> (!out)</div>
+<div class="line"><a name="l06574"></a><span class="lineno"> 6574</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l06575"></a><span class="lineno"> 6575</span>&#160; pixelCount = w * h;</div>
+<div class="line"><a name="l06576"></a><span class="lineno"> 6576</span>&#160;</div>
+<div class="line"><a name="l06577"></a><span class="lineno"> 6577</span>&#160; <span class="comment">// Initialize the data to zero.</span></div>
+<div class="line"><a name="l06578"></a><span class="lineno"> 6578</span>&#160; <span class="comment">// memset( out, 0, pixelCount * 4 );</span></div>
+<div class="line"><a name="l06579"></a><span class="lineno"> 6579</span>&#160;</div>
+<div class="line"><a name="l06580"></a><span class="lineno"> 6580</span>&#160; <span class="comment">// Finally, the image data.</span></div>
+<div class="line"><a name="l06581"></a><span class="lineno"> 6581</span>&#160; <span class="keywordflow">if</span> (compression) {</div>
+<div class="line"><a name="l06582"></a><span class="lineno"> 6582</span>&#160; <span class="comment">// RLE as used by .PSD and .TIFF</span></div>
+<div class="line"><a name="l06583"></a><span class="lineno"> 6583</span>&#160; <span class="comment">// Loop until you get the number of unpacked bytes you are expecting:</span></div>
+<div class="line"><a name="l06584"></a><span class="lineno"> 6584</span>&#160; <span class="comment">// Read the next source byte into n.</span></div>
+<div class="line"><a name="l06585"></a><span class="lineno"> 6585</span>&#160; <span class="comment">// If n is between 0 and 127 inclusive, copy the next n+1 bytes</span></div>
+<div class="line"><a name="l06586"></a><span class="lineno"> 6586</span>&#160; <span class="comment">// literally. Else if n is between -127 and -1 inclusive, copy the</span></div>
+<div class="line"><a name="l06587"></a><span class="lineno"> 6587</span>&#160; <span class="comment">// next byte -n+1 times. Else if n is 128, noop.</span></div>
+<div class="line"><a name="l06588"></a><span class="lineno"> 6588</span>&#160; <span class="comment">// Endloop</span></div>
+<div class="line"><a name="l06589"></a><span class="lineno"> 6589</span>&#160;</div>
+<div class="line"><a name="l06590"></a><span class="lineno"> 6590</span>&#160; <span class="comment">// The RLE-compressed data is preceeded by a 2-byte data count for each</span></div>
+<div class="line"><a name="l06591"></a><span class="lineno"> 6591</span>&#160; <span class="comment">// row in the data, which we&#39;re going to just skip.</span></div>
+<div class="line"><a name="l06592"></a><span class="lineno"> 6592</span>&#160; stbi__skip(s, h * channelCount * 2);</div>
+<div class="line"><a name="l06593"></a><span class="lineno"> 6593</span>&#160;</div>
+<div class="line"><a name="l06594"></a><span class="lineno"> 6594</span>&#160; <span class="comment">// Read the RLE data by channel.</span></div>
+<div class="line"><a name="l06595"></a><span class="lineno"> 6595</span>&#160; <span class="keywordflow">for</span> (channel = 0; channel &lt; 4; channel++) {</div>
+<div class="line"><a name="l06596"></a><span class="lineno"> 6596</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p;</div>
+<div class="line"><a name="l06597"></a><span class="lineno"> 6597</span>&#160;</div>
+<div class="line"><a name="l06598"></a><span class="lineno"> 6598</span>&#160; p = out + channel;</div>
+<div class="line"><a name="l06599"></a><span class="lineno"> 6599</span>&#160; <span class="keywordflow">if</span> (channel &gt;= channelCount) {</div>
+<div class="line"><a name="l06600"></a><span class="lineno"> 6600</span>&#160; <span class="comment">// Fill this channel with default data.</span></div>
+<div class="line"><a name="l06601"></a><span class="lineno"> 6601</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
+<div class="line"><a name="l06602"></a><span class="lineno"> 6602</span>&#160; *p = (channel == 3 ? 255 : 0);</div>
+<div class="line"><a name="l06603"></a><span class="lineno"> 6603</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06604"></a><span class="lineno"> 6604</span>&#160; <span class="comment">// Read the RLE data.</span></div>
+<div class="line"><a name="l06605"></a><span class="lineno"> 6605</span>&#160; <span class="keywordflow">if</span> (!stbi__psd_decode_rle(s, p, pixelCount)) {</div>
+<div class="line"><a name="l06606"></a><span class="lineno"> 6606</span>&#160; STBI_FREE(out);</div>
+<div class="line"><a name="l06607"></a><span class="lineno"> 6607</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;corrupt&quot;</span>, <span class="stringliteral">&quot;bad RLE data&quot;</span>);</div>
+<div class="line"><a name="l06608"></a><span class="lineno"> 6608</span>&#160; }</div>
+<div class="line"><a name="l06609"></a><span class="lineno"> 6609</span>&#160; }</div>
+<div class="line"><a name="l06610"></a><span class="lineno"> 6610</span>&#160; }</div>
+<div class="line"><a name="l06611"></a><span class="lineno"> 6611</span>&#160;</div>
+<div class="line"><a name="l06612"></a><span class="lineno"> 6612</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06613"></a><span class="lineno"> 6613</span>&#160; <span class="comment">// We&#39;re at the raw image data. It&#39;s each channel in order (Red, Green,</span></div>
+<div class="line"><a name="l06614"></a><span class="lineno"> 6614</span>&#160; <span class="comment">// Blue, Alpha, ...) where each channel consists of an 8-bit (or 16-bit)</span></div>
+<div class="line"><a name="l06615"></a><span class="lineno"> 6615</span>&#160; <span class="comment">// value for each pixel in the image.</span></div>
+<div class="line"><a name="l06616"></a><span class="lineno"> 6616</span>&#160;</div>
+<div class="line"><a name="l06617"></a><span class="lineno"> 6617</span>&#160; <span class="comment">// Read the data by channel.</span></div>
+<div class="line"><a name="l06618"></a><span class="lineno"> 6618</span>&#160; <span class="keywordflow">for</span> (channel = 0; channel &lt; 4; channel++) {</div>
+<div class="line"><a name="l06619"></a><span class="lineno"> 6619</span>&#160; <span class="keywordflow">if</span> (channel &gt;= channelCount) {</div>
+<div class="line"><a name="l06620"></a><span class="lineno"> 6620</span>&#160; <span class="comment">// Fill this channel with default data.</span></div>
+<div class="line"><a name="l06621"></a><span class="lineno"> 6621</span>&#160; <span class="keywordflow">if</span> (bitdepth == 16 &amp;&amp; bpc == 16) {</div>
+<div class="line"><a name="l06622"></a><span class="lineno"> 6622</span>&#160; stbi__uint16 *q = ((stbi__uint16 *)out) + channel;</div>
+<div class="line"><a name="l06623"></a><span class="lineno"> 6623</span>&#160; stbi__uint16 val = channel == 3 ? 65535 : 0;</div>
+<div class="line"><a name="l06624"></a><span class="lineno"> 6624</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, q += 4)</div>
+<div class="line"><a name="l06625"></a><span class="lineno"> 6625</span>&#160; *q = val;</div>
+<div class="line"><a name="l06626"></a><span class="lineno"> 6626</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06627"></a><span class="lineno"> 6627</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = out + channel;</div>
+<div class="line"><a name="l06628"></a><span class="lineno"> 6628</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> val = channel == 3 ? 255 : 0;</div>
+<div class="line"><a name="l06629"></a><span class="lineno"> 6629</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
+<div class="line"><a name="l06630"></a><span class="lineno"> 6630</span>&#160; *p = val;</div>
+<div class="line"><a name="l06631"></a><span class="lineno"> 6631</span>&#160; }</div>
+<div class="line"><a name="l06632"></a><span class="lineno"> 6632</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06633"></a><span class="lineno"> 6633</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16) { <span class="comment">// output bpc</span></div>
+<div class="line"><a name="l06634"></a><span class="lineno"> 6634</span>&#160; stbi__uint16 *q = ((stbi__uint16 *)out) + channel;</div>
+<div class="line"><a name="l06635"></a><span class="lineno"> 6635</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, q += 4)</div>
+<div class="line"><a name="l06636"></a><span class="lineno"> 6636</span>&#160; *q = (stbi__uint16)stbi__get16be(s);</div>
+<div class="line"><a name="l06637"></a><span class="lineno"> 6637</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06638"></a><span class="lineno"> 6638</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = out + channel;</div>
+<div class="line"><a name="l06639"></a><span class="lineno"> 6639</span>&#160; <span class="keywordflow">if</span> (bitdepth == 16) { <span class="comment">// input bpc</span></div>
+<div class="line"><a name="l06640"></a><span class="lineno"> 6640</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
+<div class="line"><a name="l06641"></a><span class="lineno"> 6641</span>&#160; *p = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)(stbi__get16be(s) &gt;&gt; 8);</div>
+<div class="line"><a name="l06642"></a><span class="lineno"> 6642</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06643"></a><span class="lineno"> 6643</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; pixelCount; i++, p += 4)</div>
+<div class="line"><a name="l06644"></a><span class="lineno"> 6644</span>&#160; *p = stbi__get8(s);</div>
+<div class="line"><a name="l06645"></a><span class="lineno"> 6645</span>&#160; }</div>
+<div class="line"><a name="l06646"></a><span class="lineno"> 6646</span>&#160; }</div>
+<div class="line"><a name="l06647"></a><span class="lineno"> 6647</span>&#160; }</div>
+<div class="line"><a name="l06648"></a><span class="lineno"> 6648</span>&#160; }</div>
+<div class="line"><a name="l06649"></a><span class="lineno"> 6649</span>&#160; }</div>
+<div class="line"><a name="l06650"></a><span class="lineno"> 6650</span>&#160;</div>
+<div class="line"><a name="l06651"></a><span class="lineno"> 6651</span>&#160; <span class="comment">// remove weird white matte from PSD</span></div>
+<div class="line"><a name="l06652"></a><span class="lineno"> 6652</span>&#160; <span class="keywordflow">if</span> (channelCount &gt;= 4) {</div>
+<div class="line"><a name="l06653"></a><span class="lineno"> 6653</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16) {</div>
+<div class="line"><a name="l06654"></a><span class="lineno"> 6654</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w * h; ++i) {</div>
+<div class="line"><a name="l06655"></a><span class="lineno"> 6655</span>&#160; stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i;</div>
+<div class="line"><a name="l06656"></a><span class="lineno"> 6656</span>&#160; <span class="keywordflow">if</span> (pixel[3] != 0 &amp;&amp; pixel[3] != 65535) {</div>
+<div class="line"><a name="l06657"></a><span class="lineno"> 6657</span>&#160; <span class="keywordtype">float</span> a = pixel[3] / 65535.0f;</div>
+<div class="line"><a name="l06658"></a><span class="lineno"> 6658</span>&#160; <span class="keywordtype">float</span> ra = 1.0f / a;</div>
+<div class="line"><a name="l06659"></a><span class="lineno"> 6659</span>&#160; <span class="keywordtype">float</span> inv_a = 65535.0f * (1 - ra);</div>
+<div class="line"><a name="l06660"></a><span class="lineno"> 6660</span>&#160; pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a);</div>
+<div class="line"><a name="l06661"></a><span class="lineno"> 6661</span>&#160; pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a);</div>
+<div class="line"><a name="l06662"></a><span class="lineno"> 6662</span>&#160; pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a);</div>
+<div class="line"><a name="l06663"></a><span class="lineno"> 6663</span>&#160; }</div>
+<div class="line"><a name="l06664"></a><span class="lineno"> 6664</span>&#160; }</div>
+<div class="line"><a name="l06665"></a><span class="lineno"> 6665</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l06666"></a><span class="lineno"> 6666</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; w * h; ++i) {</div>
+<div class="line"><a name="l06667"></a><span class="lineno"> 6667</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pixel = out + 4 * i;</div>
+<div class="line"><a name="l06668"></a><span class="lineno"> 6668</span>&#160; <span class="keywordflow">if</span> (pixel[3] != 0 &amp;&amp; pixel[3] != 255) {</div>
+<div class="line"><a name="l06669"></a><span class="lineno"> 6669</span>&#160; <span class="keywordtype">float</span> a = pixel[3] / 255.0f;</div>
+<div class="line"><a name="l06670"></a><span class="lineno"> 6670</span>&#160; <span class="keywordtype">float</span> ra = 1.0f / a;</div>
+<div class="line"><a name="l06671"></a><span class="lineno"> 6671</span>&#160; <span class="keywordtype">float</span> inv_a = 255.0f * (1 - ra);</div>
+<div class="line"><a name="l06672"></a><span class="lineno"> 6672</span>&#160; pixel[0] = (<span class="keywordtype">unsigned</span> char)(pixel[0] * ra + inv_a);</div>
+<div class="line"><a name="l06673"></a><span class="lineno"> 6673</span>&#160; pixel[1] = (<span class="keywordtype">unsigned</span> char)(pixel[1] * ra + inv_a);</div>
+<div class="line"><a name="l06674"></a><span class="lineno"> 6674</span>&#160; pixel[2] = (<span class="keywordtype">unsigned</span> char)(pixel[2] * ra + inv_a);</div>
+<div class="line"><a name="l06675"></a><span class="lineno"> 6675</span>&#160; }</div>
+<div class="line"><a name="l06676"></a><span class="lineno"> 6676</span>&#160; }</div>
+<div class="line"><a name="l06677"></a><span class="lineno"> 6677</span>&#160; }</div>
+<div class="line"><a name="l06678"></a><span class="lineno"> 6678</span>&#160; }</div>
+<div class="line"><a name="l06679"></a><span class="lineno"> 6679</span>&#160;</div>
+<div class="line"><a name="l06680"></a><span class="lineno"> 6680</span>&#160; <span class="comment">// convert to desired output format</span></div>
+<div class="line"><a name="l06681"></a><span class="lineno"> 6681</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != 4) {</div>
+<div class="line"><a name="l06682"></a><span class="lineno"> 6682</span>&#160; <span class="keywordflow">if</span> (ri-&gt;bits_per_channel == 16)</div>
+<div class="line"><a name="l06683"></a><span class="lineno"> 6683</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__convert_format16((stbi__uint16 *)out, 4,</div>
+<div class="line"><a name="l06684"></a><span class="lineno"> 6684</span>&#160; req_comp, w, h);</div>
+<div class="line"><a name="l06685"></a><span class="lineno"> 6685</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l06686"></a><span class="lineno"> 6686</span>&#160; out = stbi__convert_format(out, 4, req_comp, w, h);</div>
+<div class="line"><a name="l06687"></a><span class="lineno"> 6687</span>&#160; <span class="keywordflow">if</span> (out == NULL)</div>
+<div class="line"><a name="l06688"></a><span class="lineno"> 6688</span>&#160; <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
+<div class="line"><a name="l06689"></a><span class="lineno"> 6689</span>&#160; }</div>
+<div class="line"><a name="l06690"></a><span class="lineno"> 6690</span>&#160;</div>
+<div class="line"><a name="l06691"></a><span class="lineno"> 6691</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l06692"></a><span class="lineno"> 6692</span>&#160; *comp = 4;</div>
+<div class="line"><a name="l06693"></a><span class="lineno"> 6693</span>&#160; *y = h;</div>
+<div class="line"><a name="l06694"></a><span class="lineno"> 6694</span>&#160; *x = w;</div>
+<div class="line"><a name="l06695"></a><span class="lineno"> 6695</span>&#160;</div>
+<div class="line"><a name="l06696"></a><span class="lineno"> 6696</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l06697"></a><span class="lineno"> 6697</span>&#160;}</div>
+<div class="line"><a name="l06698"></a><span class="lineno"> 6698</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l06699"></a><span class="lineno"> 6699</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l06700"></a><span class="lineno"> 6700</span>&#160; <span class="comment">// *************************************************************************************************</span></div>
+<div class="line"><a name="l06701"></a><span class="lineno"> 6701</span>&#160; <span class="comment">// Softimage PIC loader</span></div>
+<div class="line"><a name="l06702"></a><span class="lineno"> 6702</span>&#160; <span class="comment">// by Tom Seddon</span></div>
+<div class="line"><a name="l06703"></a><span class="lineno"> 6703</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l06704"></a><span class="lineno"> 6704</span>&#160; <span class="comment">// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format</span></div>
+<div class="line"><a name="l06705"></a><span class="lineno"> 6705</span>&#160; <span class="comment">// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/</span></div>
+<div class="line"><a name="l06706"></a><span class="lineno"> 6706</span>&#160;</div>
+<div class="line"><a name="l06707"></a><span class="lineno"> 6707</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
+<div class="line"><a name="l06708"></a><span class="lineno"> 6708</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_is4(stbi__context *s, <span class="keyword">const</span> <span class="keywordtype">char</span> *str)</div>
+<div class="line"><a name="l06709"></a><span class="lineno"> 6709</span>&#160;{</div>
+<div class="line"><a name="l06710"></a><span class="lineno"> 6710</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l06711"></a><span class="lineno"> 6711</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 4; ++i)</div>
+<div class="line"><a name="l06712"></a><span class="lineno"> 6712</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)str[i])</div>
+<div class="line"><a name="l06713"></a><span class="lineno"> 6713</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06714"></a><span class="lineno"> 6714</span>&#160;</div>
+<div class="line"><a name="l06715"></a><span class="lineno"> 6715</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l06716"></a><span class="lineno"> 6716</span>&#160;}</div>
<div class="line"><a name="l06717"></a><span class="lineno"> 6717</span>&#160;</div>
-<div class="line"><a name="l06718"></a><span class="lineno"> 6718</span>&#160; stbi__skip(s, 88);</div>
-<div class="line"><a name="l06719"></a><span class="lineno"> 6719</span>&#160;</div>
-<div class="line"><a name="l06720"></a><span class="lineno"> 6720</span>&#160; *x = stbi__get16be(s);</div>
-<div class="line"><a name="l06721"></a><span class="lineno"> 6721</span>&#160; *y = stbi__get16be(s);</div>
-<div class="line"><a name="l06722"></a><span class="lineno"> 6722</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) {</div>
-<div class="line"><a name="l06723"></a><span class="lineno"> 6723</span>&#160; stbi__rewind( s);</div>
-<div class="line"><a name="l06724"></a><span class="lineno"> 6724</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06725"></a><span class="lineno"> 6725</span>&#160; }</div>
-<div class="line"><a name="l06726"></a><span class="lineno"> 6726</span>&#160; <span class="keywordflow">if</span> ( (*x) != 0 &amp;&amp; (1 &lt;&lt; 28) / (*x) &lt; (*y)) {</div>
-<div class="line"><a name="l06727"></a><span class="lineno"> 6727</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06728"></a><span class="lineno"> 6728</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06729"></a><span class="lineno"> 6729</span>&#160; }</div>
+<div class="line"><a name="l06718"></a><span class="lineno"> 6718</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test_core(stbi__context *s)</div>
+<div class="line"><a name="l06719"></a><span class="lineno"> 6719</span>&#160;{</div>
+<div class="line"><a name="l06720"></a><span class="lineno"> 6720</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l06721"></a><span class="lineno"> 6721</span>&#160;</div>
+<div class="line"><a name="l06722"></a><span class="lineno"> 6722</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s, <span class="stringliteral">&quot;\x53\x80\xF6\x34&quot;</span>))</div>
+<div class="line"><a name="l06723"></a><span class="lineno"> 6723</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06724"></a><span class="lineno"> 6724</span>&#160;</div>
+<div class="line"><a name="l06725"></a><span class="lineno"> 6725</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 84; ++i)</div>
+<div class="line"><a name="l06726"></a><span class="lineno"> 6726</span>&#160; stbi__get8(s);</div>
+<div class="line"><a name="l06727"></a><span class="lineno"> 6727</span>&#160;</div>
+<div class="line"><a name="l06728"></a><span class="lineno"> 6728</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s, <span class="stringliteral">&quot;PICT&quot;</span>))</div>
+<div class="line"><a name="l06729"></a><span class="lineno"> 6729</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l06730"></a><span class="lineno"> 6730</span>&#160;</div>
-<div class="line"><a name="l06731"></a><span class="lineno"> 6731</span>&#160; stbi__skip(s, 8);</div>
-<div class="line"><a name="l06732"></a><span class="lineno"> 6732</span>&#160;</div>
-<div class="line"><a name="l06733"></a><span class="lineno"> 6733</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l06734"></a><span class="lineno"> 6734</span>&#160; stbi__pic_packet *packet;</div>
-<div class="line"><a name="l06735"></a><span class="lineno"> 6735</span>&#160;</div>
-<div class="line"><a name="l06736"></a><span class="lineno"> 6736</span>&#160; <span class="keywordflow">if</span> (num_packets==<span class="keyword">sizeof</span>(packets)/<span class="keyword">sizeof</span>(packets[0]))</div>
-<div class="line"><a name="l06737"></a><span class="lineno"> 6737</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06738"></a><span class="lineno"> 6738</span>&#160;</div>
-<div class="line"><a name="l06739"></a><span class="lineno"> 6739</span>&#160; packet = &amp;packets[num_packets++];</div>
-<div class="line"><a name="l06740"></a><span class="lineno"> 6740</span>&#160; chained = stbi__get8(s);</div>
-<div class="line"><a name="l06741"></a><span class="lineno"> 6741</span>&#160; packet-&gt;size = stbi__get8(s);</div>
-<div class="line"><a name="l06742"></a><span class="lineno"> 6742</span>&#160; packet-&gt;type = stbi__get8(s);</div>
-<div class="line"><a name="l06743"></a><span class="lineno"> 6743</span>&#160; packet-&gt;channel = stbi__get8(s);</div>
-<div class="line"><a name="l06744"></a><span class="lineno"> 6744</span>&#160; act_comp |= packet-&gt;channel;</div>
-<div class="line"><a name="l06745"></a><span class="lineno"> 6745</span>&#160;</div>
-<div class="line"><a name="l06746"></a><span class="lineno"> 6746</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) {</div>
-<div class="line"><a name="l06747"></a><span class="lineno"> 6747</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06748"></a><span class="lineno"> 6748</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06749"></a><span class="lineno"> 6749</span>&#160; }</div>
-<div class="line"><a name="l06750"></a><span class="lineno"> 6750</span>&#160; <span class="keywordflow">if</span> (packet-&gt;size != 8) {</div>
-<div class="line"><a name="l06751"></a><span class="lineno"> 6751</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06752"></a><span class="lineno"> 6752</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06753"></a><span class="lineno"> 6753</span>&#160; }</div>
-<div class="line"><a name="l06754"></a><span class="lineno"> 6754</span>&#160; } <span class="keywordflow">while</span> (chained);</div>
-<div class="line"><a name="l06755"></a><span class="lineno"> 6755</span>&#160;</div>
-<div class="line"><a name="l06756"></a><span class="lineno"> 6756</span>&#160; *comp = (act_comp &amp; 0x10 ? 4 : 3);</div>
-<div class="line"><a name="l06757"></a><span class="lineno"> 6757</span>&#160;</div>
-<div class="line"><a name="l06758"></a><span class="lineno"> 6758</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06759"></a><span class="lineno"> 6759</span>&#160;}</div>
-<div class="line"><a name="l06760"></a><span class="lineno"> 6760</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06761"></a><span class="lineno"> 6761</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06762"></a><span class="lineno"> 6762</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
-<div class="line"><a name="l06763"></a><span class="lineno"> 6763</span>&#160;<span class="comment">// Portable Gray Map and Portable Pixel Map loader</span></div>
-<div class="line"><a name="l06764"></a><span class="lineno"> 6764</span>&#160;<span class="comment">// by Ken Miller</span></div>
-<div class="line"><a name="l06765"></a><span class="lineno"> 6765</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l06766"></a><span class="lineno"> 6766</span>&#160;<span class="comment">// PGM: http://netpbm.sourceforge.net/doc/pgm.html</span></div>
-<div class="line"><a name="l06767"></a><span class="lineno"> 6767</span>&#160;<span class="comment">// PPM: http://netpbm.sourceforge.net/doc/ppm.html</span></div>
-<div class="line"><a name="l06768"></a><span class="lineno"> 6768</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l06769"></a><span class="lineno"> 6769</span>&#160;<span class="comment">// Known limitations:</span></div>
-<div class="line"><a name="l06770"></a><span class="lineno"> 6770</span>&#160;<span class="comment">// Does not support comments in the header section</span></div>
-<div class="line"><a name="l06771"></a><span class="lineno"> 6771</span>&#160;<span class="comment">// Does not support ASCII image data (formats P2 and P3)</span></div>
-<div class="line"><a name="l06772"></a><span class="lineno"> 6772</span>&#160;<span class="comment">// Does not support 16-bit-per-channel</span></div>
-<div class="line"><a name="l06773"></a><span class="lineno"> 6773</span>&#160;</div>
-<div class="line"><a name="l06774"></a><span class="lineno"> 6774</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
-<div class="line"><a name="l06775"></a><span class="lineno"> 6775</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06776"></a><span class="lineno"> 6776</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_test(stbi__context *s)</div>
-<div class="line"><a name="l06777"></a><span class="lineno"> 6777</span>&#160;{</div>
-<div class="line"><a name="l06778"></a><span class="lineno"> 6778</span>&#160; <span class="keywordtype">char</span> p, t;</div>
-<div class="line"><a name="l06779"></a><span class="lineno"> 6779</span>&#160; p = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06780"></a><span class="lineno"> 6780</span>&#160; t = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06781"></a><span class="lineno"> 6781</span>&#160; <span class="keywordflow">if</span> (p != <span class="charliteral">&#39;P&#39;</span> || (t != <span class="charliteral">&#39;5&#39;</span> &amp;&amp; t != <span class="charliteral">&#39;6&#39;</span>)) {</div>
-<div class="line"><a name="l06782"></a><span class="lineno"> 6782</span>&#160; stbi__rewind( s );</div>
-<div class="line"><a name="l06783"></a><span class="lineno"> 6783</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06784"></a><span class="lineno"> 6784</span>&#160; }</div>
-<div class="line"><a name="l06785"></a><span class="lineno"> 6785</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06786"></a><span class="lineno"> 6786</span>&#160;}</div>
-<div class="line"><a name="l06787"></a><span class="lineno"> 6787</span>&#160;</div>
-<div class="line"><a name="l06788"></a><span class="lineno"> 6788</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pnm_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp, <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
-<div class="line"><a name="l06789"></a><span class="lineno"> 6789</span>&#160;{</div>
-<div class="line"><a name="l06790"></a><span class="lineno"> 6790</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
-<div class="line"><a name="l06791"></a><span class="lineno"> 6791</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l06731"></a><span class="lineno"> 6731</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l06732"></a><span class="lineno"> 6732</span>&#160;}</div>
+<div class="line"><a name="l06733"></a><span class="lineno"> 6733</span>&#160;</div>
+<div class="line"><a name="l06734"></a><span class="lineno"> 6734</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l06735"></a><span class="lineno"> 6735</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> size, type, channel;</div>
+<div class="line"><a name="l06736"></a><span class="lineno"> 6736</span>&#160;} stbi__pic_packet;</div>
+<div class="line"><a name="l06737"></a><span class="lineno"> 6737</span>&#160;</div>
+<div class="line"><a name="l06738"></a><span class="lineno"> 6738</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__readval(stbi__context *s, <span class="keywordtype">int</span> channel, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest)</div>
+<div class="line"><a name="l06739"></a><span class="lineno"> 6739</span>&#160;{</div>
+<div class="line"><a name="l06740"></a><span class="lineno"> 6740</span>&#160; <span class="keywordtype">int</span> mask = 0x80, i;</div>
+<div class="line"><a name="l06741"></a><span class="lineno"> 6741</span>&#160;</div>
+<div class="line"><a name="l06742"></a><span class="lineno"> 6742</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 4; ++i, mask &gt;&gt;= 1) {</div>
+<div class="line"><a name="l06743"></a><span class="lineno"> 6743</span>&#160; <span class="keywordflow">if</span> (channel &amp; mask) {</div>
+<div class="line"><a name="l06744"></a><span class="lineno"> 6744</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s))</div>
+<div class="line"><a name="l06745"></a><span class="lineno"> 6745</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;PIC file too short&quot;</span>);</div>
+<div class="line"><a name="l06746"></a><span class="lineno"> 6746</span>&#160; dest[i] = stbi__get8(s);</div>
+<div class="line"><a name="l06747"></a><span class="lineno"> 6747</span>&#160; }</div>
+<div class="line"><a name="l06748"></a><span class="lineno"> 6748</span>&#160; }</div>
+<div class="line"><a name="l06749"></a><span class="lineno"> 6749</span>&#160;</div>
+<div class="line"><a name="l06750"></a><span class="lineno"> 6750</span>&#160; <span class="keywordflow">return</span> dest;</div>
+<div class="line"><a name="l06751"></a><span class="lineno"> 6751</span>&#160;}</div>
+<div class="line"><a name="l06752"></a><span class="lineno"> 6752</span>&#160;</div>
+<div class="line"><a name="l06753"></a><span class="lineno"> 6753</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__copyval(<span class="keywordtype">int</span> channel, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest, <span class="keyword">const</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *src)</div>
+<div class="line"><a name="l06754"></a><span class="lineno"> 6754</span>&#160;{</div>
+<div class="line"><a name="l06755"></a><span class="lineno"> 6755</span>&#160; <span class="keywordtype">int</span> mask = 0x80, i;</div>
+<div class="line"><a name="l06756"></a><span class="lineno"> 6756</span>&#160;</div>
+<div class="line"><a name="l06757"></a><span class="lineno"> 6757</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 4; ++i, mask &gt;&gt;= 1)</div>
+<div class="line"><a name="l06758"></a><span class="lineno"> 6758</span>&#160; <span class="keywordflow">if</span> (channel &amp; mask)</div>
+<div class="line"><a name="l06759"></a><span class="lineno"> 6759</span>&#160; dest[i] = src[i];</div>
+<div class="line"><a name="l06760"></a><span class="lineno"> 6760</span>&#160;}</div>
+<div class="line"><a name="l06761"></a><span class="lineno"> 6761</span>&#160;</div>
+<div class="line"><a name="l06762"></a><span class="lineno"> 6762</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__pic_load_core(stbi__context *s, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height,</div>
+<div class="line"><a name="l06763"></a><span class="lineno"> 6763</span>&#160; <span class="keywordtype">int</span> *comp, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *result)</div>
+<div class="line"><a name="l06764"></a><span class="lineno"> 6764</span>&#160;{</div>
+<div class="line"><a name="l06765"></a><span class="lineno"> 6765</span>&#160; <span class="keywordtype">int</span> act_comp = 0, num_packets = 0, y, chained;</div>
+<div class="line"><a name="l06766"></a><span class="lineno"> 6766</span>&#160; stbi__pic_packet packets[10];</div>
+<div class="line"><a name="l06767"></a><span class="lineno"> 6767</span>&#160;</div>
+<div class="line"><a name="l06768"></a><span class="lineno"> 6768</span>&#160; <span class="comment">// this will (should...) cater for even some bizarre stuff like having data</span></div>
+<div class="line"><a name="l06769"></a><span class="lineno"> 6769</span>&#160; <span class="comment">// for the same channel in multiple packets.</span></div>
+<div class="line"><a name="l06770"></a><span class="lineno"> 6770</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l06771"></a><span class="lineno"> 6771</span>&#160; stbi__pic_packet *packet;</div>
+<div class="line"><a name="l06772"></a><span class="lineno"> 6772</span>&#160;</div>
+<div class="line"><a name="l06773"></a><span class="lineno"> 6773</span>&#160; <span class="keywordflow">if</span> (num_packets == <span class="keyword">sizeof</span>(packets) / <span class="keyword">sizeof</span>(packets[0]))</div>
+<div class="line"><a name="l06774"></a><span class="lineno"> 6774</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>, <span class="stringliteral">&quot;too many packets&quot;</span>);</div>
+<div class="line"><a name="l06775"></a><span class="lineno"> 6775</span>&#160;</div>
+<div class="line"><a name="l06776"></a><span class="lineno"> 6776</span>&#160; packet = &amp;packets[num_packets++];</div>
+<div class="line"><a name="l06777"></a><span class="lineno"> 6777</span>&#160;</div>
+<div class="line"><a name="l06778"></a><span class="lineno"> 6778</span>&#160; chained = stbi__get8(s);</div>
+<div class="line"><a name="l06779"></a><span class="lineno"> 6779</span>&#160; packet-&gt;size = stbi__get8(s);</div>
+<div class="line"><a name="l06780"></a><span class="lineno"> 6780</span>&#160; packet-&gt;type = stbi__get8(s);</div>
+<div class="line"><a name="l06781"></a><span class="lineno"> 6781</span>&#160; packet-&gt;channel = stbi__get8(s);</div>
+<div class="line"><a name="l06782"></a><span class="lineno"> 6782</span>&#160;</div>
+<div class="line"><a name="l06783"></a><span class="lineno"> 6783</span>&#160; act_comp |= packet-&gt;channel;</div>
+<div class="line"><a name="l06784"></a><span class="lineno"> 6784</span>&#160;</div>
+<div class="line"><a name="l06785"></a><span class="lineno"> 6785</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s))</div>
+<div class="line"><a name="l06786"></a><span class="lineno"> 6786</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;file too short (reading packets)&quot;</span>);</div>
+<div class="line"><a name="l06787"></a><span class="lineno"> 6787</span>&#160; <span class="keywordflow">if</span> (packet-&gt;size != 8)</div>
+<div class="line"><a name="l06788"></a><span class="lineno"> 6788</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>, <span class="stringliteral">&quot;packet isn&#39;t 8bpp&quot;</span>);</div>
+<div class="line"><a name="l06789"></a><span class="lineno"> 6789</span>&#160; } <span class="keywordflow">while</span> (chained);</div>
+<div class="line"><a name="l06790"></a><span class="lineno"> 6790</span>&#160;</div>
+<div class="line"><a name="l06791"></a><span class="lineno"> 6791</span>&#160; *comp = (act_comp &amp; 0x10 ? 4 : 3); <span class="comment">// has alpha channel?</span></div>
<div class="line"><a name="l06792"></a><span class="lineno"> 6792</span>&#160;</div>
-<div class="line"><a name="l06793"></a><span class="lineno"> 6793</span>&#160; <span class="keywordflow">if</span> (!stbi__pnm_info(s, (<span class="keywordtype">int</span> *)&amp;s-&gt;img_x, (<span class="keywordtype">int</span> *)&amp;s-&gt;img_y, (<span class="keywordtype">int</span> *)&amp;s-&gt;img_n))</div>
-<div class="line"><a name="l06794"></a><span class="lineno"> 6794</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06793"></a><span class="lineno"> 6793</span>&#160; <span class="keywordflow">for</span> (y = 0; y &lt; height; ++y) {</div>
+<div class="line"><a name="l06794"></a><span class="lineno"> 6794</span>&#160; <span class="keywordtype">int</span> packet_idx;</div>
<div class="line"><a name="l06795"></a><span class="lineno"> 6795</span>&#160;</div>
-<div class="line"><a name="l06796"></a><span class="lineno"> 6796</span>&#160; *x = s-&gt;img_x;</div>
-<div class="line"><a name="l06797"></a><span class="lineno"> 6797</span>&#160; *y = s-&gt;img_y;</div>
-<div class="line"><a name="l06798"></a><span class="lineno"> 6798</span>&#160; <span class="keywordflow">if</span> (comp) *comp = s-&gt;img_n;</div>
+<div class="line"><a name="l06796"></a><span class="lineno"> 6796</span>&#160; <span class="keywordflow">for</span> (packet_idx = 0; packet_idx &lt; num_packets; ++packet_idx) {</div>
+<div class="line"><a name="l06797"></a><span class="lineno"> 6797</span>&#160; stbi__pic_packet *packet = &amp;packets[packet_idx];</div>
+<div class="line"><a name="l06798"></a><span class="lineno"> 6798</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *dest = result + y * width * 4;</div>
<div class="line"><a name="l06799"></a><span class="lineno"> 6799</span>&#160;</div>
-<div class="line"><a name="l06800"></a><span class="lineno"> 6800</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(s-&gt;img_n, s-&gt;img_x, s-&gt;img_y, 0))</div>
-<div class="line"><a name="l06801"></a><span class="lineno"> 6801</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;PNM too large&quot;</span>);</div>
-<div class="line"><a name="l06802"></a><span class="lineno"> 6802</span>&#160;</div>
-<div class="line"><a name="l06803"></a><span class="lineno"> 6803</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *) stbi__malloc_mad3(s-&gt;img_n, s-&gt;img_x, s-&gt;img_y, 0);</div>
-<div class="line"><a name="l06804"></a><span class="lineno"> 6804</span>&#160; <span class="keywordflow">if</span> (!out) <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
-<div class="line"><a name="l06805"></a><span class="lineno"> 6805</span>&#160; stbi__getn(s, out, s-&gt;img_n * s-&gt;img_x * s-&gt;img_y);</div>
-<div class="line"><a name="l06806"></a><span class="lineno"> 6806</span>&#160;</div>
-<div class="line"><a name="l06807"></a><span class="lineno"> 6807</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != s-&gt;img_n) {</div>
-<div class="line"><a name="l06808"></a><span class="lineno"> 6808</span>&#160; out = stbi__convert_format(out, s-&gt;img_n, req_comp, s-&gt;img_x, s-&gt;img_y);</div>
-<div class="line"><a name="l06809"></a><span class="lineno"> 6809</span>&#160; <span class="keywordflow">if</span> (out == NULL) <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
-<div class="line"><a name="l06810"></a><span class="lineno"> 6810</span>&#160; }</div>
-<div class="line"><a name="l06811"></a><span class="lineno"> 6811</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l06812"></a><span class="lineno"> 6812</span>&#160;}</div>
+<div class="line"><a name="l06800"></a><span class="lineno"> 6800</span>&#160; <span class="keywordflow">switch</span> (packet-&gt;type) {</div>
+<div class="line"><a name="l06801"></a><span class="lineno"> 6801</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l06802"></a><span class="lineno"> 6802</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad format&quot;</span>,</div>
+<div class="line"><a name="l06803"></a><span class="lineno"> 6803</span>&#160; <span class="stringliteral">&quot;packet has bad compression type&quot;</span>);</div>
+<div class="line"><a name="l06804"></a><span class="lineno"> 6804</span>&#160;</div>
+<div class="line"><a name="l06805"></a><span class="lineno"> 6805</span>&#160; <span class="keywordflow">case</span> 0: { <span class="comment">// uncompressed</span></div>
+<div class="line"><a name="l06806"></a><span class="lineno"> 6806</span>&#160; <span class="keywordtype">int</span> x;</div>
+<div class="line"><a name="l06807"></a><span class="lineno"> 6807</span>&#160;</div>
+<div class="line"><a name="l06808"></a><span class="lineno"> 6808</span>&#160; <span class="keywordflow">for</span> (x = 0; x &lt; width; ++x, dest += 4)</div>
+<div class="line"><a name="l06809"></a><span class="lineno"> 6809</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s, packet-&gt;channel, dest))</div>
+<div class="line"><a name="l06810"></a><span class="lineno"> 6810</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06811"></a><span class="lineno"> 6811</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l06812"></a><span class="lineno"> 6812</span>&#160; }</div>
<div class="line"><a name="l06813"></a><span class="lineno"> 6813</span>&#160;</div>
-<div class="line"><a name="l06814"></a><span class="lineno"> 6814</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_isspace(<span class="keywordtype">char</span> c)</div>
-<div class="line"><a name="l06815"></a><span class="lineno"> 6815</span>&#160;{</div>
-<div class="line"><a name="l06816"></a><span class="lineno"> 6816</span>&#160; <span class="keywordflow">return</span> c == <span class="charliteral">&#39; &#39;</span> || c == <span class="charliteral">&#39;\t&#39;</span> || c == <span class="charliteral">&#39;\n&#39;</span> || c == <span class="charliteral">&#39;\v&#39;</span> || c == <span class="charliteral">&#39;\f&#39;</span> || c == <span class="charliteral">&#39;\r&#39;</span>;</div>
-<div class="line"><a name="l06817"></a><span class="lineno"> 6817</span>&#160;}</div>
-<div class="line"><a name="l06818"></a><span class="lineno"> 6818</span>&#160;</div>
-<div class="line"><a name="l06819"></a><span class="lineno"> 6819</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__pnm_skip_whitespace(stbi__context *s, <span class="keywordtype">char</span> *c)</div>
-<div class="line"><a name="l06820"></a><span class="lineno"> 6820</span>&#160;{</div>
-<div class="line"><a name="l06821"></a><span class="lineno"> 6821</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
-<div class="line"><a name="l06822"></a><span class="lineno"> 6822</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; stbi__pnm_isspace(*c))</div>
-<div class="line"><a name="l06823"></a><span class="lineno"> 6823</span>&#160; *c = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06824"></a><span class="lineno"> 6824</span>&#160;</div>
-<div class="line"><a name="l06825"></a><span class="lineno"> 6825</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s) || *c != <span class="charliteral">&#39;#&#39;</span>)</div>
-<div class="line"><a name="l06826"></a><span class="lineno"> 6826</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l06827"></a><span class="lineno"> 6827</span>&#160;</div>
-<div class="line"><a name="l06828"></a><span class="lineno"> 6828</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; *c != <span class="charliteral">&#39;\n&#39;</span> &amp;&amp; *c != <span class="charliteral">&#39;\r&#39;</span> )</div>
-<div class="line"><a name="l06829"></a><span class="lineno"> 6829</span>&#160; *c = (<span class="keywordtype">char</span>) stbi__get8(s);</div>
-<div class="line"><a name="l06830"></a><span class="lineno"> 6830</span>&#160; }</div>
-<div class="line"><a name="l06831"></a><span class="lineno"> 6831</span>&#160;}</div>
-<div class="line"><a name="l06832"></a><span class="lineno"> 6832</span>&#160;</div>
-<div class="line"><a name="l06833"></a><span class="lineno"> 6833</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_isdigit(<span class="keywordtype">char</span> c)</div>
-<div class="line"><a name="l06834"></a><span class="lineno"> 6834</span>&#160;{</div>
-<div class="line"><a name="l06835"></a><span class="lineno"> 6835</span>&#160; <span class="keywordflow">return</span> c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; c &lt;= <span class="charliteral">&#39;9&#39;</span>;</div>
-<div class="line"><a name="l06836"></a><span class="lineno"> 6836</span>&#160;}</div>
+<div class="line"><a name="l06814"></a><span class="lineno"> 6814</span>&#160; <span class="keywordflow">case</span> 1: <span class="comment">// Pure RLE</span></div>
+<div class="line"><a name="l06815"></a><span class="lineno"> 6815</span>&#160; {</div>
+<div class="line"><a name="l06816"></a><span class="lineno"> 6816</span>&#160; <span class="keywordtype">int</span> left = width, i;</div>
+<div class="line"><a name="l06817"></a><span class="lineno"> 6817</span>&#160;</div>
+<div class="line"><a name="l06818"></a><span class="lineno"> 6818</span>&#160; <span class="keywordflow">while</span> (left &gt; 0) {</div>
+<div class="line"><a name="l06819"></a><span class="lineno"> 6819</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> count, value[4];</div>
+<div class="line"><a name="l06820"></a><span class="lineno"> 6820</span>&#160;</div>
+<div class="line"><a name="l06821"></a><span class="lineno"> 6821</span>&#160; count = stbi__get8(s);</div>
+<div class="line"><a name="l06822"></a><span class="lineno"> 6822</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s))</div>
+<div class="line"><a name="l06823"></a><span class="lineno"> 6823</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>,</div>
+<div class="line"><a name="l06824"></a><span class="lineno"> 6824</span>&#160; <span class="stringliteral">&quot;file too short (pure read count)&quot;</span>);</div>
+<div class="line"><a name="l06825"></a><span class="lineno"> 6825</span>&#160;</div>
+<div class="line"><a name="l06826"></a><span class="lineno"> 6826</span>&#160; <span class="keywordflow">if</span> (count &gt; left)</div>
+<div class="line"><a name="l06827"></a><span class="lineno"> 6827</span>&#160; count = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)left;</div>
+<div class="line"><a name="l06828"></a><span class="lineno"> 6828</span>&#160;</div>
+<div class="line"><a name="l06829"></a><span class="lineno"> 6829</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s, packet-&gt;channel, value))</div>
+<div class="line"><a name="l06830"></a><span class="lineno"> 6830</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06831"></a><span class="lineno"> 6831</span>&#160;</div>
+<div class="line"><a name="l06832"></a><span class="lineno"> 6832</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; count; ++i, dest += 4)</div>
+<div class="line"><a name="l06833"></a><span class="lineno"> 6833</span>&#160; stbi__copyval(packet-&gt;channel, dest, value);</div>
+<div class="line"><a name="l06834"></a><span class="lineno"> 6834</span>&#160; left -= count;</div>
+<div class="line"><a name="l06835"></a><span class="lineno"> 6835</span>&#160; }</div>
+<div class="line"><a name="l06836"></a><span class="lineno"> 6836</span>&#160; } <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l06837"></a><span class="lineno"> 6837</span>&#160;</div>
-<div class="line"><a name="l06838"></a><span class="lineno"> 6838</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_getinteger(stbi__context *s, <span class="keywordtype">char</span> *c)</div>
-<div class="line"><a name="l06839"></a><span class="lineno"> 6839</span>&#160;{</div>
-<div class="line"><a name="l06840"></a><span class="lineno"> 6840</span>&#160; <span class="keywordtype">int</span> value = 0;</div>
-<div class="line"><a name="l06841"></a><span class="lineno"> 6841</span>&#160;</div>
-<div class="line"><a name="l06842"></a><span class="lineno"> 6842</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; stbi__pnm_isdigit(*c)) {</div>
-<div class="line"><a name="l06843"></a><span class="lineno"> 6843</span>&#160; value = value*10 + (*c - <span class="charliteral">&#39;0&#39;</span>);</div>
-<div class="line"><a name="l06844"></a><span class="lineno"> 6844</span>&#160; *c = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06845"></a><span class="lineno"> 6845</span>&#160; }</div>
-<div class="line"><a name="l06846"></a><span class="lineno"> 6846</span>&#160;</div>
-<div class="line"><a name="l06847"></a><span class="lineno"> 6847</span>&#160; <span class="keywordflow">return</span> value;</div>
-<div class="line"><a name="l06848"></a><span class="lineno"> 6848</span>&#160;}</div>
-<div class="line"><a name="l06849"></a><span class="lineno"> 6849</span>&#160;</div>
-<div class="line"><a name="l06850"></a><span class="lineno"> 6850</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06851"></a><span class="lineno"> 6851</span>&#160;{</div>
-<div class="line"><a name="l06852"></a><span class="lineno"> 6852</span>&#160; <span class="keywordtype">int</span> maxv, dummy;</div>
-<div class="line"><a name="l06853"></a><span class="lineno"> 6853</span>&#160; <span class="keywordtype">char</span> c, p, t;</div>
-<div class="line"><a name="l06854"></a><span class="lineno"> 6854</span>&#160;</div>
-<div class="line"><a name="l06855"></a><span class="lineno"> 6855</span>&#160; <span class="keywordflow">if</span> (!x) x = &amp;dummy;</div>
-<div class="line"><a name="l06856"></a><span class="lineno"> 6856</span>&#160; <span class="keywordflow">if</span> (!y) y = &amp;dummy;</div>
-<div class="line"><a name="l06857"></a><span class="lineno"> 6857</span>&#160; <span class="keywordflow">if</span> (!comp) comp = &amp;dummy;</div>
+<div class="line"><a name="l06838"></a><span class="lineno"> 6838</span>&#160; <span class="keywordflow">case</span> 2: { <span class="comment">// Mixed RLE</span></div>
+<div class="line"><a name="l06839"></a><span class="lineno"> 6839</span>&#160; <span class="keywordtype">int</span> left = width;</div>
+<div class="line"><a name="l06840"></a><span class="lineno"> 6840</span>&#160; <span class="keywordflow">while</span> (left &gt; 0) {</div>
+<div class="line"><a name="l06841"></a><span class="lineno"> 6841</span>&#160; <span class="keywordtype">int</span> count = stbi__get8(s), i;</div>
+<div class="line"><a name="l06842"></a><span class="lineno"> 6842</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s))</div>
+<div class="line"><a name="l06843"></a><span class="lineno"> 6843</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(</div>
+<div class="line"><a name="l06844"></a><span class="lineno"> 6844</span>&#160; <span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;file too short (mixed read count)&quot;</span>);</div>
+<div class="line"><a name="l06845"></a><span class="lineno"> 6845</span>&#160;</div>
+<div class="line"><a name="l06846"></a><span class="lineno"> 6846</span>&#160; <span class="keywordflow">if</span> (count &gt;= 128) { <span class="comment">// Repeated</span></div>
+<div class="line"><a name="l06847"></a><span class="lineno"> 6847</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> value[4];</div>
+<div class="line"><a name="l06848"></a><span class="lineno"> 6848</span>&#160;</div>
+<div class="line"><a name="l06849"></a><span class="lineno"> 6849</span>&#160; <span class="keywordflow">if</span> (count == 128)</div>
+<div class="line"><a name="l06850"></a><span class="lineno"> 6850</span>&#160; count = stbi__get16be(s);</div>
+<div class="line"><a name="l06851"></a><span class="lineno"> 6851</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l06852"></a><span class="lineno"> 6852</span>&#160; count -= 127;</div>
+<div class="line"><a name="l06853"></a><span class="lineno"> 6853</span>&#160; <span class="keywordflow">if</span> (count &gt; left)</div>
+<div class="line"><a name="l06854"></a><span class="lineno"> 6854</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;scanline overrun&quot;</span>);</div>
+<div class="line"><a name="l06855"></a><span class="lineno"> 6855</span>&#160;</div>
+<div class="line"><a name="l06856"></a><span class="lineno"> 6856</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s, packet-&gt;channel, value))</div>
+<div class="line"><a name="l06857"></a><span class="lineno"> 6857</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l06858"></a><span class="lineno"> 6858</span>&#160;</div>
-<div class="line"><a name="l06859"></a><span class="lineno"> 6859</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06860"></a><span class="lineno"> 6860</span>&#160;</div>
-<div class="line"><a name="l06861"></a><span class="lineno"> 6861</span>&#160; <span class="comment">// Get identifier</span></div>
-<div class="line"><a name="l06862"></a><span class="lineno"> 6862</span>&#160; p = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06863"></a><span class="lineno"> 6863</span>&#160; t = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06864"></a><span class="lineno"> 6864</span>&#160; <span class="keywordflow">if</span> (p != <span class="charliteral">&#39;P&#39;</span> || (t != <span class="charliteral">&#39;5&#39;</span> &amp;&amp; t != <span class="charliteral">&#39;6&#39;</span>)) {</div>
-<div class="line"><a name="l06865"></a><span class="lineno"> 6865</span>&#160; stbi__rewind(s);</div>
-<div class="line"><a name="l06866"></a><span class="lineno"> 6866</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l06867"></a><span class="lineno"> 6867</span>&#160; }</div>
-<div class="line"><a name="l06868"></a><span class="lineno"> 6868</span>&#160;</div>
-<div class="line"><a name="l06869"></a><span class="lineno"> 6869</span>&#160; *comp = (t == <span class="charliteral">&#39;6&#39;</span>) ? 3 : 1; <span class="comment">// &#39;5&#39; is 1-component .pgm; &#39;6&#39; is 3-component .ppm</span></div>
-<div class="line"><a name="l06870"></a><span class="lineno"> 6870</span>&#160;</div>
-<div class="line"><a name="l06871"></a><span class="lineno"> 6871</span>&#160; c = (char) stbi__get8(s);</div>
-<div class="line"><a name="l06872"></a><span class="lineno"> 6872</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
-<div class="line"><a name="l06873"></a><span class="lineno"> 6873</span>&#160;</div>
-<div class="line"><a name="l06874"></a><span class="lineno"> 6874</span>&#160; *x = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read width</span></div>
-<div class="line"><a name="l06875"></a><span class="lineno"> 6875</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
-<div class="line"><a name="l06876"></a><span class="lineno"> 6876</span>&#160;</div>
-<div class="line"><a name="l06877"></a><span class="lineno"> 6877</span>&#160; *y = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read height</span></div>
-<div class="line"><a name="l06878"></a><span class="lineno"> 6878</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
-<div class="line"><a name="l06879"></a><span class="lineno"> 6879</span>&#160;</div>
-<div class="line"><a name="l06880"></a><span class="lineno"> 6880</span>&#160; maxv = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read max value</span></div>
-<div class="line"><a name="l06881"></a><span class="lineno"> 6881</span>&#160;</div>
-<div class="line"><a name="l06882"></a><span class="lineno"> 6882</span>&#160; <span class="keywordflow">if</span> (maxv &gt; 255)</div>
-<div class="line"><a name="l06883"></a><span class="lineno"> 6883</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;max value &gt; 255&quot;</span>, <span class="stringliteral">&quot;PPM image not 8-bit&quot;</span>);</div>
-<div class="line"><a name="l06884"></a><span class="lineno"> 6884</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06885"></a><span class="lineno"> 6885</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06886"></a><span class="lineno"> 6886</span>&#160;}</div>
-<div class="line"><a name="l06887"></a><span class="lineno"> 6887</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l06888"></a><span class="lineno"> 6888</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06889"></a><span class="lineno"> 6889</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__info_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06890"></a><span class="lineno"> 6890</span>&#160;{</div>
-<div class="line"><a name="l06891"></a><span class="lineno"> 6891</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_JPEG</span></div>
-<div class="line"><a name="l06892"></a><span class="lineno"> 6892</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__jpeg_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06893"></a><span class="lineno"> 6893</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06894"></a><span class="lineno"> 6894</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06895"></a><span class="lineno"> 6895</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_PNG</span></div>
-<div class="line"><a name="l06896"></a><span class="lineno"> 6896</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__png_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06897"></a><span class="lineno"> 6897</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06898"></a><span class="lineno"> 6898</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06899"></a><span class="lineno"> 6899</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_GIF</span></div>
-<div class="line"><a name="l06900"></a><span class="lineno"> 6900</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__gif_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06901"></a><span class="lineno"> 6901</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06902"></a><span class="lineno"> 6902</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06903"></a><span class="lineno"> 6903</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_BMP</span></div>
-<div class="line"><a name="l06904"></a><span class="lineno"> 6904</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__bmp_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06905"></a><span class="lineno"> 6905</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06906"></a><span class="lineno"> 6906</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06907"></a><span class="lineno"> 6907</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_PSD</span></div>
-<div class="line"><a name="l06908"></a><span class="lineno"> 6908</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__psd_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06909"></a><span class="lineno"> 6909</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06910"></a><span class="lineno"> 6910</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06911"></a><span class="lineno"> 6911</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_PIC</span></div>
-<div class="line"><a name="l06912"></a><span class="lineno"> 6912</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pic_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06913"></a><span class="lineno"> 6913</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06914"></a><span class="lineno"> 6914</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06915"></a><span class="lineno"> 6915</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_PNM</span></div>
-<div class="line"><a name="l06916"></a><span class="lineno"> 6916</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pnm_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06917"></a><span class="lineno"> 6917</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06918"></a><span class="lineno"> 6918</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06919"></a><span class="lineno"> 6919</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_HDR</span></div>
-<div class="line"><a name="l06920"></a><span class="lineno"> 6920</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_info(s, x, y, comp)) <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06921"></a><span class="lineno"> 6921</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06922"></a><span class="lineno"> 6922</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06923"></a><span class="lineno"> 6923</span>&#160; <span class="comment">// test tga last because it&#39;s a crappy test!</span></div>
-<div class="line"><a name="l06924"></a><span class="lineno"> 6924</span>&#160;<span class="preprocessor"> #ifndef STBI_NO_TGA</span></div>
-<div class="line"><a name="l06925"></a><span class="lineno"> 6925</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__tga_info(s, x, y, comp))</div>
-<div class="line"><a name="l06926"></a><span class="lineno"> 6926</span>&#160; <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l06927"></a><span class="lineno"> 6927</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l06928"></a><span class="lineno"> 6928</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;unknown image type&quot;</span>, <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
-<div class="line"><a name="l06929"></a><span class="lineno"> 6929</span>&#160;}</div>
-<div class="line"><a name="l06930"></a><span class="lineno"> 6930</span>&#160;</div>
-<div class="line"><a name="l06931"></a><span class="lineno"> 6931</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
-<div class="line"><a name="l06932"></a><span class="lineno"> 6932</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70">stbi_info</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06933"></a><span class="lineno"> 6933</span>&#160;{</div>
-<div class="line"><a name="l06934"></a><span class="lineno"> 6934</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line"><a name="l06935"></a><span class="lineno"> 6935</span>&#160; <span class="keywordtype">int</span> result;</div>
-<div class="line"><a name="l06936"></a><span class="lineno"> 6936</span>&#160; <span class="keywordflow">if</span> (!f) <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
-<div class="line"><a name="l06937"></a><span class="lineno"> 6937</span>&#160; result = <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a>(f, x, y, comp);</div>
-<div class="line"><a name="l06938"></a><span class="lineno"> 6938</span>&#160; fclose(f);</div>
-<div class="line"><a name="l06939"></a><span class="lineno"> 6939</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l06940"></a><span class="lineno"> 6940</span>&#160;}</div>
-<div class="line"><a name="l06941"></a><span class="lineno"> 6941</span>&#160;</div>
-<div class="line"><a name="l06942"></a><span class="lineno"> 6942</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06943"></a><span class="lineno"> 6943</span>&#160;{</div>
-<div class="line"><a name="l06944"></a><span class="lineno"> 6944</span>&#160; <span class="keywordtype">int</span> r;</div>
-<div class="line"><a name="l06945"></a><span class="lineno"> 6945</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l06946"></a><span class="lineno"> 6946</span>&#160; <span class="keywordtype">long</span> pos = ftell(f);</div>
-<div class="line"><a name="l06947"></a><span class="lineno"> 6947</span>&#160; stbi__start_file(&amp;s, f);</div>
-<div class="line"><a name="l06948"></a><span class="lineno"> 6948</span>&#160; r = stbi__info_main(&amp;s,x,y,comp);</div>
-<div class="line"><a name="l06949"></a><span class="lineno"> 6949</span>&#160; fseek(f,pos,SEEK_SET);</div>
-<div class="line"><a name="l06950"></a><span class="lineno"> 6950</span>&#160; <span class="keywordflow">return</span> r;</div>
-<div class="line"><a name="l06951"></a><span class="lineno"> 6951</span>&#160;}</div>
-<div class="line"><a name="l06952"></a><span class="lineno"> 6952</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
-<div class="line"><a name="l06953"></a><span class="lineno"> 6953</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06954"></a><span class="lineno"> 6954</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#acfef077febce3bc3f1f339de478f3315">stbi_info_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06955"></a><span class="lineno"> 6955</span>&#160;{</div>
-<div class="line"><a name="l06956"></a><span class="lineno"> 6956</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l06957"></a><span class="lineno"> 6957</span>&#160; stbi__start_mem(&amp;s,buffer,len);</div>
-<div class="line"><a name="l06958"></a><span class="lineno"> 6958</span>&#160; <span class="keywordflow">return</span> stbi__info_main(&amp;s,x,y,comp);</div>
-<div class="line"><a name="l06959"></a><span class="lineno"> 6959</span>&#160;}</div>
-<div class="line"><a name="l06960"></a><span class="lineno"> 6960</span>&#160;</div>
-<div class="line"><a name="l06961"></a><span class="lineno"> 6961</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363">stbi_info_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *c, <span class="keywordtype">void</span> *user, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
-<div class="line"><a name="l06962"></a><span class="lineno"> 6962</span>&#160;{</div>
-<div class="line"><a name="l06963"></a><span class="lineno"> 6963</span>&#160; stbi__context s;</div>
-<div class="line"><a name="l06964"></a><span class="lineno"> 6964</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *) c, user);</div>
-<div class="line"><a name="l06965"></a><span class="lineno"> 6965</span>&#160; <span class="keywordflow">return</span> stbi__info_main(&amp;s,x,y,comp);</div>
-<div class="line"><a name="l06966"></a><span class="lineno"> 6966</span>&#160;}</div>
-<div class="line"><a name="l06967"></a><span class="lineno"> 6967</span>&#160;</div>
-<div class="line"><a name="l06968"></a><span class="lineno"> 6968</span>&#160;<span class="preprocessor">#endif // STB_IMAGE_IMPLEMENTATION</span></div>
-<div class="line"><a name="l06969"></a><span class="lineno"> 6969</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l06970"></a><span class="lineno"> 6970</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l06971"></a><span class="lineno"> 6971</span>&#160;<span class="comment"> revision history:</span></div>
-<div class="line"><a name="l06972"></a><span class="lineno"> 6972</span>&#160;<span class="comment"> 2.16 (2017-07-23) all functions have 16-bit variants;</span></div>
-<div class="line"><a name="l06973"></a><span class="lineno"> 6973</span>&#160;<span class="comment"> STBI_NO_STDIO works again;</span></div>
-<div class="line"><a name="l06974"></a><span class="lineno"> 6974</span>&#160;<span class="comment"> compilation fixes;</span></div>
-<div class="line"><a name="l06975"></a><span class="lineno"> 6975</span>&#160;<span class="comment"> fix rounding in unpremultiply;</span></div>
-<div class="line"><a name="l06976"></a><span class="lineno"> 6976</span>&#160;<span class="comment"> optimize vertical flip;</span></div>
-<div class="line"><a name="l06977"></a><span class="lineno"> 6977</span>&#160;<span class="comment"> disable raw_len validation;</span></div>
-<div class="line"><a name="l06978"></a><span class="lineno"> 6978</span>&#160;<span class="comment"> documentation fixes</span></div>
-<div class="line"><a name="l06979"></a><span class="lineno"> 6979</span>&#160;<span class="comment"> 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;</span></div>
-<div class="line"><a name="l06980"></a><span class="lineno"> 6980</span>&#160;<span class="comment"> warning fixes; disable run-time SSE detection on gcc;</span></div>
-<div class="line"><a name="l06981"></a><span class="lineno"> 6981</span>&#160;<span class="comment"> uniform handling of optional &quot;return&quot; values;</span></div>
-<div class="line"><a name="l06982"></a><span class="lineno"> 6982</span>&#160;<span class="comment"> thread-safe initialization of zlib tables</span></div>
-<div class="line"><a name="l06983"></a><span class="lineno"> 6983</span>&#160;<span class="comment"> 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs</span></div>
-<div class="line"><a name="l06984"></a><span class="lineno"> 6984</span>&#160;<span class="comment"> 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now</span></div>
-<div class="line"><a name="l06985"></a><span class="lineno"> 6985</span>&#160;<span class="comment"> 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes</span></div>
-<div class="line"><a name="l06986"></a><span class="lineno"> 6986</span>&#160;<span class="comment"> 2.11 (2016-04-02) allocate large structures on the stack</span></div>
-<div class="line"><a name="l06987"></a><span class="lineno"> 6987</span>&#160;<span class="comment"> remove white matting for transparent PSD</span></div>
-<div class="line"><a name="l06988"></a><span class="lineno"> 6988</span>&#160;<span class="comment"> fix reported channel count for PNG &amp; BMP</span></div>
-<div class="line"><a name="l06989"></a><span class="lineno"> 6989</span>&#160;<span class="comment"> re-enable SSE2 in non-gcc 64-bit</span></div>
-<div class="line"><a name="l06990"></a><span class="lineno"> 6990</span>&#160;<span class="comment"> support RGB-formatted JPEG</span></div>
-<div class="line"><a name="l06991"></a><span class="lineno"> 6991</span>&#160;<span class="comment"> read 16-bit PNGs (only as 8-bit)</span></div>
-<div class="line"><a name="l06992"></a><span class="lineno"> 6992</span>&#160;<span class="comment"> 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED</span></div>
-<div class="line"><a name="l06993"></a><span class="lineno"> 6993</span>&#160;<span class="comment"> 2.09 (2016-01-16) allow comments in PNM files</span></div>
-<div class="line"><a name="l06994"></a><span class="lineno"> 6994</span>&#160;<span class="comment"> 16-bit-per-pixel TGA (not bit-per-component)</span></div>
-<div class="line"><a name="l06995"></a><span class="lineno"> 6995</span>&#160;<span class="comment"> info() for TGA could break due to .hdr handling</span></div>
-<div class="line"><a name="l06996"></a><span class="lineno"> 6996</span>&#160;<span class="comment"> info() for BMP to shares code instead of sloppy parse</span></div>
-<div class="line"><a name="l06997"></a><span class="lineno"> 6997</span>&#160;<span class="comment"> can use STBI_REALLOC_SIZED if allocator doesn&#39;t support realloc</span></div>
-<div class="line"><a name="l06998"></a><span class="lineno"> 6998</span>&#160;<span class="comment"> code cleanup</span></div>
-<div class="line"><a name="l06999"></a><span class="lineno"> 6999</span>&#160;<span class="comment"> 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA</span></div>
-<div class="line"><a name="l07000"></a><span class="lineno"> 7000</span>&#160;<span class="comment"> 2.07 (2015-09-13) fix compiler warnings</span></div>
-<div class="line"><a name="l07001"></a><span class="lineno"> 7001</span>&#160;<span class="comment"> partial animated GIF support</span></div>
-<div class="line"><a name="l07002"></a><span class="lineno"> 7002</span>&#160;<span class="comment"> limited 16-bpc PSD support</span></div>
-<div class="line"><a name="l07003"></a><span class="lineno"> 7003</span>&#160;<span class="comment"> #ifdef unused functions</span></div>
-<div class="line"><a name="l07004"></a><span class="lineno"> 7004</span>&#160;<span class="comment"> bug with &lt; 92 byte PIC,PNM,HDR,TGA</span></div>
-<div class="line"><a name="l07005"></a><span class="lineno"> 7005</span>&#160;<span class="comment"> 2.06 (2015-04-19) fix bug where PSD returns wrong &#39;*comp&#39; value</span></div>
-<div class="line"><a name="l07006"></a><span class="lineno"> 7006</span>&#160;<span class="comment"> 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning</span></div>
-<div class="line"><a name="l07007"></a><span class="lineno"> 7007</span>&#160;<span class="comment"> 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit</span></div>
-<div class="line"><a name="l07008"></a><span class="lineno"> 7008</span>&#160;<span class="comment"> 2.03 (2015-04-12) extra corruption checking (mmozeiko)</span></div>
-<div class="line"><a name="l07009"></a><span class="lineno"> 7009</span>&#160;<span class="comment"> stbi_set_flip_vertically_on_load (nguillemot)</span></div>
-<div class="line"><a name="l07010"></a><span class="lineno"> 7010</span>&#160;<span class="comment"> fix NEON support; fix mingw support</span></div>
-<div class="line"><a name="l07011"></a><span class="lineno"> 7011</span>&#160;<span class="comment"> 2.02 (2015-01-19) fix incorrect assert, fix warning</span></div>
-<div class="line"><a name="l07012"></a><span class="lineno"> 7012</span>&#160;<span class="comment"> 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2</span></div>
-<div class="line"><a name="l07013"></a><span class="lineno"> 7013</span>&#160;<span class="comment"> 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG</span></div>
-<div class="line"><a name="l07014"></a><span class="lineno"> 7014</span>&#160;<span class="comment"> 2.00 (2014-12-25) optimize JPG, including x86 SSE2 &amp; NEON SIMD (ryg)</span></div>
-<div class="line"><a name="l07015"></a><span class="lineno"> 7015</span>&#160;<span class="comment"> progressive JPEG (stb)</span></div>
-<div class="line"><a name="l07016"></a><span class="lineno"> 7016</span>&#160;<span class="comment"> PGM/PPM support (Ken Miller)</span></div>
-<div class="line"><a name="l07017"></a><span class="lineno"> 7017</span>&#160;<span class="comment"> STBI_MALLOC,STBI_REALLOC,STBI_FREE</span></div>
-<div class="line"><a name="l07018"></a><span class="lineno"> 7018</span>&#160;<span class="comment"> GIF bugfix -- seemingly never worked</span></div>
-<div class="line"><a name="l07019"></a><span class="lineno"> 7019</span>&#160;<span class="comment"> STBI_NO_*, STBI_ONLY_*</span></div>
-<div class="line"><a name="l07020"></a><span class="lineno"> 7020</span>&#160;<span class="comment"> 1.48 (2014-12-14) fix incorrectly-named assert()</span></div>
-<div class="line"><a name="l07021"></a><span class="lineno"> 7021</span>&#160;<span class="comment"> 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut &amp; stb)</span></div>
-<div class="line"><a name="l07022"></a><span class="lineno"> 7022</span>&#160;<span class="comment"> optimize PNG (ryg)</span></div>
-<div class="line"><a name="l07023"></a><span class="lineno"> 7023</span>&#160;<span class="comment"> fix bug in interlaced PNG with user-specified channel count (stb)</span></div>
-<div class="line"><a name="l07024"></a><span class="lineno"> 7024</span>&#160;<span class="comment"> 1.46 (2014-08-26)</span></div>
-<div class="line"><a name="l07025"></a><span class="lineno"> 7025</span>&#160;<span class="comment"> fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG</span></div>
-<div class="line"><a name="l07026"></a><span class="lineno"> 7026</span>&#160;<span class="comment"> 1.45 (2014-08-16)</span></div>
-<div class="line"><a name="l07027"></a><span class="lineno"> 7027</span>&#160;<span class="comment"> fix MSVC-ARM internal compiler error by wrapping malloc</span></div>
-<div class="line"><a name="l07028"></a><span class="lineno"> 7028</span>&#160;<span class="comment"> 1.44 (2014-08-07)</span></div>
-<div class="line"><a name="l07029"></a><span class="lineno"> 7029</span>&#160;<span class="comment"> various warning fixes from Ronny Chevalier</span></div>
-<div class="line"><a name="l07030"></a><span class="lineno"> 7030</span>&#160;<span class="comment"> 1.43 (2014-07-15)</span></div>
-<div class="line"><a name="l07031"></a><span class="lineno"> 7031</span>&#160;<span class="comment"> fix MSVC-only compiler problem in code changed in 1.42</span></div>
-<div class="line"><a name="l07032"></a><span class="lineno"> 7032</span>&#160;<span class="comment"> 1.42 (2014-07-09)</span></div>
-<div class="line"><a name="l07033"></a><span class="lineno"> 7033</span>&#160;<span class="comment"> don&#39;t define _CRT_SECURE_NO_WARNINGS (affects user code)</span></div>
-<div class="line"><a name="l07034"></a><span class="lineno"> 7034</span>&#160;<span class="comment"> fixes to stbi__cleanup_jpeg path</span></div>
-<div class="line"><a name="l07035"></a><span class="lineno"> 7035</span>&#160;<span class="comment"> added STBI_ASSERT to avoid requiring assert.h</span></div>
-<div class="line"><a name="l07036"></a><span class="lineno"> 7036</span>&#160;<span class="comment"> 1.41 (2014-06-25)</span></div>
-<div class="line"><a name="l07037"></a><span class="lineno"> 7037</span>&#160;<span class="comment"> fix search&amp;replace from 1.36 that messed up comments/error messages</span></div>
-<div class="line"><a name="l07038"></a><span class="lineno"> 7038</span>&#160;<span class="comment"> 1.40 (2014-06-22)</span></div>
-<div class="line"><a name="l07039"></a><span class="lineno"> 7039</span>&#160;<span class="comment"> fix gcc struct-initialization warning</span></div>
-<div class="line"><a name="l07040"></a><span class="lineno"> 7040</span>&#160;<span class="comment"> 1.39 (2014-06-15)</span></div>
-<div class="line"><a name="l07041"></a><span class="lineno"> 7041</span>&#160;<span class="comment"> fix to TGA optimization when req_comp != number of components in TGA;</span></div>
-<div class="line"><a name="l07042"></a><span class="lineno"> 7042</span>&#160;<span class="comment"> fix to GIF loading because BMP wasn&#39;t rewinding (whoops, no GIFs in my test suite)</span></div>
-<div class="line"><a name="l07043"></a><span class="lineno"> 7043</span>&#160;<span class="comment"> add support for BMP version 5 (more ignored fields)</span></div>
-<div class="line"><a name="l07044"></a><span class="lineno"> 7044</span>&#160;<span class="comment"> 1.38 (2014-06-06)</span></div>
-<div class="line"><a name="l07045"></a><span class="lineno"> 7045</span>&#160;<span class="comment"> suppress MSVC warnings on integer casts truncating values</span></div>
-<div class="line"><a name="l07046"></a><span class="lineno"> 7046</span>&#160;<span class="comment"> fix accidental rename of &#39;skip&#39; field of I/O</span></div>
-<div class="line"><a name="l07047"></a><span class="lineno"> 7047</span>&#160;<span class="comment"> 1.37 (2014-06-04)</span></div>
-<div class="line"><a name="l07048"></a><span class="lineno"> 7048</span>&#160;<span class="comment"> remove duplicate typedef</span></div>
-<div class="line"><a name="l07049"></a><span class="lineno"> 7049</span>&#160;<span class="comment"> 1.36 (2014-06-03)</span></div>
-<div class="line"><a name="l07050"></a><span class="lineno"> 7050</span>&#160;<span class="comment"> convert to header file single-file library</span></div>
-<div class="line"><a name="l07051"></a><span class="lineno"> 7051</span>&#160;<span class="comment"> if de-iphone isn&#39;t set, load iphone images color-swapped instead of returning NULL</span></div>
-<div class="line"><a name="l07052"></a><span class="lineno"> 7052</span>&#160;<span class="comment"> 1.35 (2014-05-27)</span></div>
-<div class="line"><a name="l07053"></a><span class="lineno"> 7053</span>&#160;<span class="comment"> various warnings</span></div>
-<div class="line"><a name="l07054"></a><span class="lineno"> 7054</span>&#160;<span class="comment"> fix broken STBI_SIMD path</span></div>
-<div class="line"><a name="l07055"></a><span class="lineno"> 7055</span>&#160;<span class="comment"> fix bug where stbi_load_from_file no longer left file pointer in correct place</span></div>
-<div class="line"><a name="l07056"></a><span class="lineno"> 7056</span>&#160;<span class="comment"> fix broken non-easy path for 32-bit BMP (possibly never used)</span></div>
-<div class="line"><a name="l07057"></a><span class="lineno"> 7057</span>&#160;<span class="comment"> TGA optimization by Arseny Kapoulkine</span></div>
-<div class="line"><a name="l07058"></a><span class="lineno"> 7058</span>&#160;<span class="comment"> 1.34 (unknown)</span></div>
-<div class="line"><a name="l07059"></a><span class="lineno"> 7059</span>&#160;<span class="comment"> use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case</span></div>
-<div class="line"><a name="l07060"></a><span class="lineno"> 7060</span>&#160;<span class="comment"> 1.33 (2011-07-14)</span></div>
-<div class="line"><a name="l07061"></a><span class="lineno"> 7061</span>&#160;<span class="comment"> make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements</span></div>
-<div class="line"><a name="l07062"></a><span class="lineno"> 7062</span>&#160;<span class="comment"> 1.32 (2011-07-13)</span></div>
-<div class="line"><a name="l07063"></a><span class="lineno"> 7063</span>&#160;<span class="comment"> support for &quot;info&quot; function for all supported filetypes (SpartanJ)</span></div>
-<div class="line"><a name="l07064"></a><span class="lineno"> 7064</span>&#160;<span class="comment"> 1.31 (2011-06-20)</span></div>
-<div class="line"><a name="l07065"></a><span class="lineno"> 7065</span>&#160;<span class="comment"> a few more leak fixes, bug in PNG handling (SpartanJ)</span></div>
-<div class="line"><a name="l07066"></a><span class="lineno"> 7066</span>&#160;<span class="comment"> 1.30 (2011-06-11)</span></div>
-<div class="line"><a name="l07067"></a><span class="lineno"> 7067</span>&#160;<span class="comment"> added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)</span></div>
-<div class="line"><a name="l07068"></a><span class="lineno"> 7068</span>&#160;<span class="comment"> removed deprecated format-specific test/load functions</span></div>
-<div class="line"><a name="l07069"></a><span class="lineno"> 7069</span>&#160;<span class="comment"> removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway</span></div>
-<div class="line"><a name="l07070"></a><span class="lineno"> 7070</span>&#160;<span class="comment"> error cases in bmp and tga give messages and don&#39;t leak (Raymond Barbiero, grisha)</span></div>
-<div class="line"><a name="l07071"></a><span class="lineno"> 7071</span>&#160;<span class="comment"> fix inefficiency in decoding 32-bit BMP (David Woo)</span></div>
-<div class="line"><a name="l07072"></a><span class="lineno"> 7072</span>&#160;<span class="comment"> 1.29 (2010-08-16)</span></div>
-<div class="line"><a name="l07073"></a><span class="lineno"> 7073</span>&#160;<span class="comment"> various warning fixes from Aurelien Pocheville</span></div>
-<div class="line"><a name="l07074"></a><span class="lineno"> 7074</span>&#160;<span class="comment"> 1.28 (2010-08-01)</span></div>
-<div class="line"><a name="l07075"></a><span class="lineno"> 7075</span>&#160;<span class="comment"> fix bug in GIF palette transparency (SpartanJ)</span></div>
-<div class="line"><a name="l07076"></a><span class="lineno"> 7076</span>&#160;<span class="comment"> 1.27 (2010-08-01)</span></div>
-<div class="line"><a name="l07077"></a><span class="lineno"> 7077</span>&#160;<span class="comment"> cast-to-stbi_uc to fix warnings</span></div>
-<div class="line"><a name="l07078"></a><span class="lineno"> 7078</span>&#160;<span class="comment"> 1.26 (2010-07-24)</span></div>
-<div class="line"><a name="l07079"></a><span class="lineno"> 7079</span>&#160;<span class="comment"> fix bug in file buffering for PNG reported by SpartanJ</span></div>
-<div class="line"><a name="l07080"></a><span class="lineno"> 7080</span>&#160;<span class="comment"> 1.25 (2010-07-17)</span></div>
-<div class="line"><a name="l07081"></a><span class="lineno"> 7081</span>&#160;<span class="comment"> refix trans_data warning (Won Chun)</span></div>
-<div class="line"><a name="l07082"></a><span class="lineno"> 7082</span>&#160;<span class="comment"> 1.24 (2010-07-12)</span></div>
-<div class="line"><a name="l07083"></a><span class="lineno"> 7083</span>&#160;<span class="comment"> perf improvements reading from files on platforms with lock-heavy fgetc()</span></div>
-<div class="line"><a name="l07084"></a><span class="lineno"> 7084</span>&#160;<span class="comment"> minor perf improvements for jpeg</span></div>
-<div class="line"><a name="l07085"></a><span class="lineno"> 7085</span>&#160;<span class="comment"> deprecated type-specific functions so we&#39;ll get feedback if they&#39;re needed</span></div>
-<div class="line"><a name="l07086"></a><span class="lineno"> 7086</span>&#160;<span class="comment"> attempt to fix trans_data warning (Won Chun)</span></div>
-<div class="line"><a name="l07087"></a><span class="lineno"> 7087</span>&#160;<span class="comment"> 1.23 fixed bug in iPhone support</span></div>
-<div class="line"><a name="l07088"></a><span class="lineno"> 7088</span>&#160;<span class="comment"> 1.22 (2010-07-10)</span></div>
-<div class="line"><a name="l07089"></a><span class="lineno"> 7089</span>&#160;<span class="comment"> removed image *writing* support</span></div>
-<div class="line"><a name="l07090"></a><span class="lineno"> 7090</span>&#160;<span class="comment"> stbi_info support from Jetro Lauha</span></div>
-<div class="line"><a name="l07091"></a><span class="lineno"> 7091</span>&#160;<span class="comment"> GIF support from Jean-Marc Lienher</span></div>
-<div class="line"><a name="l07092"></a><span class="lineno"> 7092</span>&#160;<span class="comment"> iPhone PNG-extensions from James Brown</span></div>
-<div class="line"><a name="l07093"></a><span class="lineno"> 7093</span>&#160;<span class="comment"> warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)</span></div>
-<div class="line"><a name="l07094"></a><span class="lineno"> 7094</span>&#160;<span class="comment"> 1.21 fix use of &#39;stbi_uc&#39; in header (reported by jon blow)</span></div>
-<div class="line"><a name="l07095"></a><span class="lineno"> 7095</span>&#160;<span class="comment"> 1.20 added support for Softimage PIC, by Tom Seddon</span></div>
-<div class="line"><a name="l07096"></a><span class="lineno"> 7096</span>&#160;<span class="comment"> 1.19 bug in interlaced PNG corruption check (found by ryg)</span></div>
-<div class="line"><a name="l07097"></a><span class="lineno"> 7097</span>&#160;<span class="comment"> 1.18 (2008-08-02)</span></div>
-<div class="line"><a name="l07098"></a><span class="lineno"> 7098</span>&#160;<span class="comment"> fix a threading bug (local mutable static)</span></div>
-<div class="line"><a name="l07099"></a><span class="lineno"> 7099</span>&#160;<span class="comment"> 1.17 support interlaced PNG</span></div>
-<div class="line"><a name="l07100"></a><span class="lineno"> 7100</span>&#160;<span class="comment"> 1.16 major bugfix - stbi__convert_format converted one too many pixels</span></div>
-<div class="line"><a name="l07101"></a><span class="lineno"> 7101</span>&#160;<span class="comment"> 1.15 initialize some fields for thread safety</span></div>
-<div class="line"><a name="l07102"></a><span class="lineno"> 7102</span>&#160;<span class="comment"> 1.14 fix threadsafe conversion bug</span></div>
-<div class="line"><a name="l07103"></a><span class="lineno"> 7103</span>&#160;<span class="comment"> header-file-only version (#define STBI_HEADER_FILE_ONLY before including)</span></div>
-<div class="line"><a name="l07104"></a><span class="lineno"> 7104</span>&#160;<span class="comment"> 1.13 threadsafe</span></div>
-<div class="line"><a name="l07105"></a><span class="lineno"> 7105</span>&#160;<span class="comment"> 1.12 const qualifiers in the API</span></div>
-<div class="line"><a name="l07106"></a><span class="lineno"> 7106</span>&#160;<span class="comment"> 1.11 Support installable IDCT, colorspace conversion routines</span></div>
-<div class="line"><a name="l07107"></a><span class="lineno"> 7107</span>&#160;<span class="comment"> 1.10 Fixes for 64-bit (don&#39;t use &quot;unsigned long&quot;)</span></div>
-<div class="line"><a name="l07108"></a><span class="lineno"> 7108</span>&#160;<span class="comment"> optimized upsampling by Fabian &quot;ryg&quot; Giesen</span></div>
-<div class="line"><a name="l07109"></a><span class="lineno"> 7109</span>&#160;<span class="comment"> 1.09 Fix format-conversion for PSD code (bad global variables!)</span></div>
-<div class="line"><a name="l07110"></a><span class="lineno"> 7110</span>&#160;<span class="comment"> 1.08 Thatcher Ulrich&#39;s PSD code integrated by Nicolas Schulz</span></div>
-<div class="line"><a name="l07111"></a><span class="lineno"> 7111</span>&#160;<span class="comment"> 1.07 attempt to fix C++ warning/errors again</span></div>
-<div class="line"><a name="l07112"></a><span class="lineno"> 7112</span>&#160;<span class="comment"> 1.06 attempt to fix C++ warning/errors again</span></div>
-<div class="line"><a name="l07113"></a><span class="lineno"> 7113</span>&#160;<span class="comment"> 1.05 fix TGA loading to return correct *comp and use good luminance calc</span></div>
-<div class="line"><a name="l07114"></a><span class="lineno"> 7114</span>&#160;<span class="comment"> 1.04 default float alpha is 1, not 255; use &#39;void *&#39; for stbi_image_free</span></div>
-<div class="line"><a name="l07115"></a><span class="lineno"> 7115</span>&#160;<span class="comment"> 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR</span></div>
-<div class="line"><a name="l07116"></a><span class="lineno"> 7116</span>&#160;<span class="comment"> 1.02 support for (subset of) HDR files, float interface for preferred access to them</span></div>
-<div class="line"><a name="l07117"></a><span class="lineno"> 7117</span>&#160;<span class="comment"> 1.01 fix bug: possible bug in handling right-side up bmps... not sure</span></div>
-<div class="line"><a name="l07118"></a><span class="lineno"> 7118</span>&#160;<span class="comment"> fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn&#39;t work at all</span></div>
-<div class="line"><a name="l07119"></a><span class="lineno"> 7119</span>&#160;<span class="comment"> 1.00 interface to zlib that skips zlib header</span></div>
-<div class="line"><a name="l07120"></a><span class="lineno"> 7120</span>&#160;<span class="comment"> 0.99 correct handling of alpha in palette</span></div>
-<div class="line"><a name="l07121"></a><span class="lineno"> 7121</span>&#160;<span class="comment"> 0.98 TGA loader by lonesock; dynamically add loaders (untested)</span></div>
-<div class="line"><a name="l07122"></a><span class="lineno"> 7122</span>&#160;<span class="comment"> 0.97 jpeg errors on too large a file; also catch another malloc failure</span></div>
-<div class="line"><a name="l07123"></a><span class="lineno"> 7123</span>&#160;<span class="comment"> 0.96 fix detection of invalid v value - particleman@mollyrocket forum</span></div>
-<div class="line"><a name="l07124"></a><span class="lineno"> 7124</span>&#160;<span class="comment"> 0.95 during header scan, seek to markers in case of padding</span></div>
-<div class="line"><a name="l07125"></a><span class="lineno"> 7125</span>&#160;<span class="comment"> 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same</span></div>
-<div class="line"><a name="l07126"></a><span class="lineno"> 7126</span>&#160;<span class="comment"> 0.93 handle jpegtran output; verbose errors</span></div>
-<div class="line"><a name="l07127"></a><span class="lineno"> 7127</span>&#160;<span class="comment"> 0.92 read 4,8,16,24,32-bit BMP files of several formats</span></div>
-<div class="line"><a name="l07128"></a><span class="lineno"> 7128</span>&#160;<span class="comment"> 0.91 output 24-bit Windows 3.0 BMP files</span></div>
-<div class="line"><a name="l07129"></a><span class="lineno"> 7129</span>&#160;<span class="comment"> 0.90 fix a few more warnings; bump version number to approach 1.0</span></div>
-<div class="line"><a name="l07130"></a><span class="lineno"> 7130</span>&#160;<span class="comment"> 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd</span></div>
-<div class="line"><a name="l07131"></a><span class="lineno"> 7131</span>&#160;<span class="comment"> 0.60 fix compiling as c++</span></div>
-<div class="line"><a name="l07132"></a><span class="lineno"> 7132</span>&#160;<span class="comment"> 0.59 fix warnings: merge Dave Moore&#39;s -Wall fixes</span></div>
-<div class="line"><a name="l07133"></a><span class="lineno"> 7133</span>&#160;<span class="comment"> 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian</span></div>
-<div class="line"><a name="l07134"></a><span class="lineno"> 7134</span>&#160;<span class="comment"> 0.57 fix bug: jpg last huffman symbol before marker was &gt;9 bits but less than 16 available</span></div>
-<div class="line"><a name="l07135"></a><span class="lineno"> 7135</span>&#160;<span class="comment"> 0.56 fix bug: zlib uncompressed mode len vs. nlen</span></div>
-<div class="line"><a name="l07136"></a><span class="lineno"> 7136</span>&#160;<span class="comment"> 0.55 fix bug: restart_interval not initialized to 0</span></div>
-<div class="line"><a name="l07137"></a><span class="lineno"> 7137</span>&#160;<span class="comment"> 0.54 allow NULL for &#39;int *comp&#39;</span></div>
-<div class="line"><a name="l07138"></a><span class="lineno"> 7138</span>&#160;<span class="comment"> 0.53 fix bug in png 3-&gt;4; speedup png decoding</span></div>
-<div class="line"><a name="l07139"></a><span class="lineno"> 7139</span>&#160;<span class="comment"> 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments</span></div>
-<div class="line"><a name="l07140"></a><span class="lineno"> 7140</span>&#160;<span class="comment"> 0.51 obey req_comp requests, 1-component jpegs return as 1-component,</span></div>
-<div class="line"><a name="l07141"></a><span class="lineno"> 7141</span>&#160;<span class="comment"> on &#39;test&#39; only check type, not whether we support this variant</span></div>
-<div class="line"><a name="l07142"></a><span class="lineno"> 7142</span>&#160;<span class="comment"> 0.50 (2006-11-19)</span></div>
-<div class="line"><a name="l07143"></a><span class="lineno"> 7143</span>&#160;<span class="comment"> first released version</span></div>
-<div class="line"><a name="l07144"></a><span class="lineno"> 7144</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l07145"></a><span class="lineno"> 7145</span>&#160;</div>
+<div class="line"><a name="l06859"></a><span class="lineno"> 6859</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; count; ++i, dest += 4)</div>
+<div class="line"><a name="l06860"></a><span class="lineno"> 6860</span>&#160; stbi__copyval(packet-&gt;channel, dest, value);</div>
+<div class="line"><a name="l06861"></a><span class="lineno"> 6861</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Raw</span></div>
+<div class="line"><a name="l06862"></a><span class="lineno"> 6862</span>&#160; ++count;</div>
+<div class="line"><a name="l06863"></a><span class="lineno"> 6863</span>&#160; <span class="keywordflow">if</span> (count &gt; left)</div>
+<div class="line"><a name="l06864"></a><span class="lineno"> 6864</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;scanline overrun&quot;</span>);</div>
+<div class="line"><a name="l06865"></a><span class="lineno"> 6865</span>&#160;</div>
+<div class="line"><a name="l06866"></a><span class="lineno"> 6866</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; count; ++i, dest += 4)</div>
+<div class="line"><a name="l06867"></a><span class="lineno"> 6867</span>&#160; <span class="keywordflow">if</span> (!stbi__readval(s, packet-&gt;channel, dest))</div>
+<div class="line"><a name="l06868"></a><span class="lineno"> 6868</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06869"></a><span class="lineno"> 6869</span>&#160; }</div>
+<div class="line"><a name="l06870"></a><span class="lineno"> 6870</span>&#160; left -= count;</div>
+<div class="line"><a name="l06871"></a><span class="lineno"> 6871</span>&#160; }</div>
+<div class="line"><a name="l06872"></a><span class="lineno"> 6872</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l06873"></a><span class="lineno"> 6873</span>&#160; }</div>
+<div class="line"><a name="l06874"></a><span class="lineno"> 6874</span>&#160; }</div>
+<div class="line"><a name="l06875"></a><span class="lineno"> 6875</span>&#160; }</div>
+<div class="line"><a name="l06876"></a><span class="lineno"> 6876</span>&#160; }</div>
+<div class="line"><a name="l06877"></a><span class="lineno"> 6877</span>&#160;</div>
+<div class="line"><a name="l06878"></a><span class="lineno"> 6878</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l06879"></a><span class="lineno"> 6879</span>&#160;}</div>
+<div class="line"><a name="l06880"></a><span class="lineno"> 6880</span>&#160;</div>
+<div class="line"><a name="l06881"></a><span class="lineno"> 6881</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pic_load(stbi__context *s, <span class="keywordtype">int</span> *px, <span class="keywordtype">int</span> *py, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l06882"></a><span class="lineno"> 6882</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l06883"></a><span class="lineno"> 6883</span>&#160;{</div>
+<div class="line"><a name="l06884"></a><span class="lineno"> 6884</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *result;</div>
+<div class="line"><a name="l06885"></a><span class="lineno"> 6885</span>&#160; <span class="keywordtype">int</span> i, x, y, internal_comp;</div>
+<div class="line"><a name="l06886"></a><span class="lineno"> 6886</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l06887"></a><span class="lineno"> 6887</span>&#160;</div>
+<div class="line"><a name="l06888"></a><span class="lineno"> 6888</span>&#160; <span class="keywordflow">if</span> (!comp)</div>
+<div class="line"><a name="l06889"></a><span class="lineno"> 6889</span>&#160; comp = &amp;internal_comp;</div>
+<div class="line"><a name="l06890"></a><span class="lineno"> 6890</span>&#160;</div>
+<div class="line"><a name="l06891"></a><span class="lineno"> 6891</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 92; ++i)</div>
+<div class="line"><a name="l06892"></a><span class="lineno"> 6892</span>&#160; stbi__get8(s);</div>
+<div class="line"><a name="l06893"></a><span class="lineno"> 6893</span>&#160;</div>
+<div class="line"><a name="l06894"></a><span class="lineno"> 6894</span>&#160; x = stbi__get16be(s);</div>
+<div class="line"><a name="l06895"></a><span class="lineno"> 6895</span>&#160; y = stbi__get16be(s);</div>
+<div class="line"><a name="l06896"></a><span class="lineno"> 6896</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s))</div>
+<div class="line"><a name="l06897"></a><span class="lineno"> 6897</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad file&quot;</span>, <span class="stringliteral">&quot;file too short (pic header)&quot;</span>);</div>
+<div class="line"><a name="l06898"></a><span class="lineno"> 6898</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(x, y, 4, 0))</div>
+<div class="line"><a name="l06899"></a><span class="lineno"> 6899</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;PIC image too large to decode&quot;</span>);</div>
+<div class="line"><a name="l06900"></a><span class="lineno"> 6900</span>&#160;</div>
+<div class="line"><a name="l06901"></a><span class="lineno"> 6901</span>&#160; stbi__get32be(s); <span class="comment">// skip `ratio&#39;</span></div>
+<div class="line"><a name="l06902"></a><span class="lineno"> 6902</span>&#160; stbi__get16be(s); <span class="comment">// skip `fields&#39;</span></div>
+<div class="line"><a name="l06903"></a><span class="lineno"> 6903</span>&#160; stbi__get16be(s); <span class="comment">// skip `pad&#39;</span></div>
+<div class="line"><a name="l06904"></a><span class="lineno"> 6904</span>&#160;</div>
+<div class="line"><a name="l06905"></a><span class="lineno"> 6905</span>&#160; <span class="comment">// intermediate buffer is RGBA</span></div>
+<div class="line"><a name="l06906"></a><span class="lineno"> 6906</span>&#160; result = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(x, y, 4, 0);</div>
+<div class="line"><a name="l06907"></a><span class="lineno"> 6907</span>&#160; memset(result, 0xff, x * y * 4);</div>
+<div class="line"><a name="l06908"></a><span class="lineno"> 6908</span>&#160;</div>
+<div class="line"><a name="l06909"></a><span class="lineno"> 6909</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_load_core(s, x, y, comp, result)) {</div>
+<div class="line"><a name="l06910"></a><span class="lineno"> 6910</span>&#160; STBI_FREE(result);</div>
+<div class="line"><a name="l06911"></a><span class="lineno"> 6911</span>&#160; result = 0;</div>
+<div class="line"><a name="l06912"></a><span class="lineno"> 6912</span>&#160; }</div>
+<div class="line"><a name="l06913"></a><span class="lineno"> 6913</span>&#160; *px = x;</div>
+<div class="line"><a name="l06914"></a><span class="lineno"> 6914</span>&#160; *py = y;</div>
+<div class="line"><a name="l06915"></a><span class="lineno"> 6915</span>&#160; <span class="keywordflow">if</span> (req_comp == 0)</div>
+<div class="line"><a name="l06916"></a><span class="lineno"> 6916</span>&#160; req_comp = *comp;</div>
+<div class="line"><a name="l06917"></a><span class="lineno"> 6917</span>&#160; result = stbi__convert_format(result, 4, req_comp, x, y);</div>
+<div class="line"><a name="l06918"></a><span class="lineno"> 6918</span>&#160;</div>
+<div class="line"><a name="l06919"></a><span class="lineno"> 6919</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l06920"></a><span class="lineno"> 6920</span>&#160;}</div>
+<div class="line"><a name="l06921"></a><span class="lineno"> 6921</span>&#160;</div>
+<div class="line"><a name="l06922"></a><span class="lineno"> 6922</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_test(stbi__context *s)</div>
+<div class="line"><a name="l06923"></a><span class="lineno"> 6923</span>&#160;{</div>
+<div class="line"><a name="l06924"></a><span class="lineno"> 6924</span>&#160; <span class="keywordtype">int</span> r = stbi__pic_test_core(s);</div>
+<div class="line"><a name="l06925"></a><span class="lineno"> 6925</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06926"></a><span class="lineno"> 6926</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l06927"></a><span class="lineno"> 6927</span>&#160;}</div>
+<div class="line"><a name="l06928"></a><span class="lineno"> 6928</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l06929"></a><span class="lineno"> 6929</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l06930"></a><span class="lineno"> 6930</span>&#160; <span class="comment">// *************************************************************************************************</span></div>
+<div class="line"><a name="l06931"></a><span class="lineno"> 6931</span>&#160; <span class="comment">// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by</span></div>
+<div class="line"><a name="l06932"></a><span class="lineno"> 6932</span>&#160; <span class="comment">// stb</span></div>
+<div class="line"><a name="l06933"></a><span class="lineno"> 6933</span>&#160;</div>
+<div class="line"><a name="l06934"></a><span class="lineno"> 6934</span>&#160;<span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
+<div class="line"><a name="l06935"></a><span class="lineno"> 6935</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l06936"></a><span class="lineno"> 6936</span>&#160; stbi__int16 prefix;</div>
+<div class="line"><a name="l06937"></a><span class="lineno"> 6937</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> first;</div>
+<div class="line"><a name="l06938"></a><span class="lineno"> 6938</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> suffix;</div>
+<div class="line"><a name="l06939"></a><span class="lineno"> 6939</span>&#160;} stbi__gif_lzw;</div>
+<div class="line"><a name="l06940"></a><span class="lineno"> 6940</span>&#160;</div>
+<div class="line"><a name="l06941"></a><span class="lineno"> 6941</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l06942"></a><span class="lineno"> 6942</span>&#160; <span class="keywordtype">int</span> w, h;</div>
+<div class="line"><a name="l06943"></a><span class="lineno"> 6943</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out, *old_out; <span class="comment">// output buffer (always 4 components)</span></div>
+<div class="line"><a name="l06944"></a><span class="lineno"> 6944</span>&#160; <span class="keywordtype">int</span> flags, bgindex, ratio, transparent, eflags, delay;</div>
+<div class="line"><a name="l06945"></a><span class="lineno"> 6945</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4];</div>
+<div class="line"><a name="l06946"></a><span class="lineno"> 6946</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lpal[256][4];</div>
+<div class="line"><a name="l06947"></a><span class="lineno"> 6947</span>&#160; stbi__gif_lzw codes[4096];</div>
+<div class="line"><a name="l06948"></a><span class="lineno"> 6948</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *color_table;</div>
+<div class="line"><a name="l06949"></a><span class="lineno"> 6949</span>&#160; <span class="keywordtype">int</span> parse, step;</div>
+<div class="line"><a name="l06950"></a><span class="lineno"> 6950</span>&#160; <span class="keywordtype">int</span> lflags;</div>
+<div class="line"><a name="l06951"></a><span class="lineno"> 6951</span>&#160; <span class="keywordtype">int</span> start_x, start_y;</div>
+<div class="line"><a name="l06952"></a><span class="lineno"> 6952</span>&#160; <span class="keywordtype">int</span> max_x, max_y;</div>
+<div class="line"><a name="l06953"></a><span class="lineno"> 6953</span>&#160; <span class="keywordtype">int</span> cur_x, cur_y;</div>
+<div class="line"><a name="l06954"></a><span class="lineno"> 6954</span>&#160; <span class="keywordtype">int</span> line_size;</div>
+<div class="line"><a name="l06955"></a><span class="lineno"> 6955</span>&#160;} stbi__gif;</div>
+<div class="line"><a name="l06956"></a><span class="lineno"> 6956</span>&#160;</div>
+<div class="line"><a name="l06957"></a><span class="lineno"> 6957</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test_raw(stbi__context *s)</div>
+<div class="line"><a name="l06958"></a><span class="lineno"> 6958</span>&#160;{</div>
+<div class="line"><a name="l06959"></a><span class="lineno"> 6959</span>&#160; <span class="keywordtype">int</span> sz;</div>
+<div class="line"><a name="l06960"></a><span class="lineno"> 6960</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;G&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;I&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;F&#39;</span> ||</div>
+<div class="line"><a name="l06961"></a><span class="lineno"> 6961</span>&#160; stbi__get8(s) != <span class="charliteral">&#39;8&#39;</span>)</div>
+<div class="line"><a name="l06962"></a><span class="lineno"> 6962</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06963"></a><span class="lineno"> 6963</span>&#160; sz = stbi__get8(s);</div>
+<div class="line"><a name="l06964"></a><span class="lineno"> 6964</span>&#160; <span class="keywordflow">if</span> (sz != <span class="charliteral">&#39;9&#39;</span> &amp;&amp; sz != <span class="charliteral">&#39;7&#39;</span>)</div>
+<div class="line"><a name="l06965"></a><span class="lineno"> 6965</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06966"></a><span class="lineno"> 6966</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;a&#39;</span>)</div>
+<div class="line"><a name="l06967"></a><span class="lineno"> 6967</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l06968"></a><span class="lineno"> 6968</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l06969"></a><span class="lineno"> 6969</span>&#160;}</div>
+<div class="line"><a name="l06970"></a><span class="lineno"> 6970</span>&#160;</div>
+<div class="line"><a name="l06971"></a><span class="lineno"> 6971</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_test(stbi__context *s)</div>
+<div class="line"><a name="l06972"></a><span class="lineno"> 6972</span>&#160;{</div>
+<div class="line"><a name="l06973"></a><span class="lineno"> 6973</span>&#160; <span class="keywordtype">int</span> r = stbi__gif_test_raw(s);</div>
+<div class="line"><a name="l06974"></a><span class="lineno"> 6974</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l06975"></a><span class="lineno"> 6975</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l06976"></a><span class="lineno"> 6976</span>&#160;}</div>
+<div class="line"><a name="l06977"></a><span class="lineno"> 6977</span>&#160;</div>
+<div class="line"><a name="l06978"></a><span class="lineno"> 6978</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__gif_parse_colortable(stbi__context *s, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> pal[256][4],</div>
+<div class="line"><a name="l06979"></a><span class="lineno"> 6979</span>&#160; <span class="keywordtype">int</span> num_entries, <span class="keywordtype">int</span> transp)</div>
+<div class="line"><a name="l06980"></a><span class="lineno"> 6980</span>&#160;{</div>
+<div class="line"><a name="l06981"></a><span class="lineno"> 6981</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l06982"></a><span class="lineno"> 6982</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; num_entries; ++i) {</div>
+<div class="line"><a name="l06983"></a><span class="lineno"> 6983</span>&#160; pal[i][2] = stbi__get8(s);</div>
+<div class="line"><a name="l06984"></a><span class="lineno"> 6984</span>&#160; pal[i][1] = stbi__get8(s);</div>
+<div class="line"><a name="l06985"></a><span class="lineno"> 6985</span>&#160; pal[i][0] = stbi__get8(s);</div>
+<div class="line"><a name="l06986"></a><span class="lineno"> 6986</span>&#160; pal[i][3] = transp == i ? 0 : 255;</div>
+<div class="line"><a name="l06987"></a><span class="lineno"> 6987</span>&#160; }</div>
+<div class="line"><a name="l06988"></a><span class="lineno"> 6988</span>&#160;}</div>
+<div class="line"><a name="l06989"></a><span class="lineno"> 6989</span>&#160;</div>
+<div class="line"><a name="l06990"></a><span class="lineno"> 6990</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_header(stbi__context *s, stbi__gif *g, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l06991"></a><span class="lineno"> 6991</span>&#160; <span class="keywordtype">int</span> is_info)</div>
+<div class="line"><a name="l06992"></a><span class="lineno"> 6992</span>&#160;{</div>
+<div class="line"><a name="l06993"></a><span class="lineno"> 6993</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> version;</div>
+<div class="line"><a name="l06994"></a><span class="lineno"> 6994</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;G&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;I&#39;</span> || stbi__get8(s) != <span class="charliteral">&#39;F&#39;</span> ||</div>
+<div class="line"><a name="l06995"></a><span class="lineno"> 6995</span>&#160; stbi__get8(s) != <span class="charliteral">&#39;8&#39;</span>)</div>
+<div class="line"><a name="l06996"></a><span class="lineno"> 6996</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l06997"></a><span class="lineno"> 6997</span>&#160;</div>
+<div class="line"><a name="l06998"></a><span class="lineno"> 6998</span>&#160; version = stbi__get8(s);</div>
+<div class="line"><a name="l06999"></a><span class="lineno"> 6999</span>&#160; <span class="keywordflow">if</span> (version != <span class="charliteral">&#39;7&#39;</span> &amp;&amp; version != <span class="charliteral">&#39;9&#39;</span>)</div>
+<div class="line"><a name="l07000"></a><span class="lineno"> 7000</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07001"></a><span class="lineno"> 7001</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != <span class="charliteral">&#39;a&#39;</span>)</div>
+<div class="line"><a name="l07002"></a><span class="lineno"> 7002</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;not GIF&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07003"></a><span class="lineno"> 7003</span>&#160;</div>
+<div class="line"><a name="l07004"></a><span class="lineno"> 7004</span>&#160; stbi__g_failure_reason = <span class="stringliteral">&quot;&quot;</span>;</div>
+<div class="line"><a name="l07005"></a><span class="lineno"> 7005</span>&#160; g-&gt;w = stbi__get16le(s);</div>
+<div class="line"><a name="l07006"></a><span class="lineno"> 7006</span>&#160; g-&gt;h = stbi__get16le(s);</div>
+<div class="line"><a name="l07007"></a><span class="lineno"> 7007</span>&#160; g-&gt;flags = stbi__get8(s);</div>
+<div class="line"><a name="l07008"></a><span class="lineno"> 7008</span>&#160; g-&gt;bgindex = stbi__get8(s);</div>
+<div class="line"><a name="l07009"></a><span class="lineno"> 7009</span>&#160; g-&gt;ratio = stbi__get8(s);</div>
+<div class="line"><a name="l07010"></a><span class="lineno"> 7010</span>&#160; g-&gt;transparent = -1;</div>
+<div class="line"><a name="l07011"></a><span class="lineno"> 7011</span>&#160;</div>
+<div class="line"><a name="l07012"></a><span class="lineno"> 7012</span>&#160; <span class="keywordflow">if</span> (comp != 0)</div>
+<div class="line"><a name="l07013"></a><span class="lineno"> 7013</span>&#160; *comp = 4; <span class="comment">// can&#39;t actually tell whether it&#39;s 3 or 4 until we parse the</span></div>
+<div class="line"><a name="l07014"></a><span class="lineno"> 7014</span>&#160; <span class="comment">// comments</span></div>
+<div class="line"><a name="l07015"></a><span class="lineno"> 7015</span>&#160;</div>
+<div class="line"><a name="l07016"></a><span class="lineno"> 7016</span>&#160; <span class="keywordflow">if</span> (is_info)</div>
+<div class="line"><a name="l07017"></a><span class="lineno"> 7017</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07018"></a><span class="lineno"> 7018</span>&#160;</div>
+<div class="line"><a name="l07019"></a><span class="lineno"> 7019</span>&#160; <span class="keywordflow">if</span> (g-&gt;flags &amp; 0x80)</div>
+<div class="line"><a name="l07020"></a><span class="lineno"> 7020</span>&#160; stbi__gif_parse_colortable(s, g-&gt;pal, 2 &lt;&lt; (g-&gt;flags &amp; 7), -1);</div>
+<div class="line"><a name="l07021"></a><span class="lineno"> 7021</span>&#160;</div>
+<div class="line"><a name="l07022"></a><span class="lineno"> 7022</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07023"></a><span class="lineno"> 7023</span>&#160;}</div>
+<div class="line"><a name="l07024"></a><span class="lineno"> 7024</span>&#160;</div>
+<div class="line"><a name="l07025"></a><span class="lineno"> 7025</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info_raw(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07026"></a><span class="lineno"> 7026</span>&#160;{</div>
+<div class="line"><a name="l07027"></a><span class="lineno"> 7027</span>&#160; stbi__gif *g = (stbi__gif *)stbi__malloc(<span class="keyword">sizeof</span>(stbi__gif));</div>
+<div class="line"><a name="l07028"></a><span class="lineno"> 7028</span>&#160; <span class="keywordflow">if</span> (!stbi__gif_header(s, g, comp, 1)) {</div>
+<div class="line"><a name="l07029"></a><span class="lineno"> 7029</span>&#160; STBI_FREE(g);</div>
+<div class="line"><a name="l07030"></a><span class="lineno"> 7030</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07031"></a><span class="lineno"> 7031</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07032"></a><span class="lineno"> 7032</span>&#160; }</div>
+<div class="line"><a name="l07033"></a><span class="lineno"> 7033</span>&#160; <span class="keywordflow">if</span> (x)</div>
+<div class="line"><a name="l07034"></a><span class="lineno"> 7034</span>&#160; *x = g-&gt;w;</div>
+<div class="line"><a name="l07035"></a><span class="lineno"> 7035</span>&#160; <span class="keywordflow">if</span> (y)</div>
+<div class="line"><a name="l07036"></a><span class="lineno"> 7036</span>&#160; *y = g-&gt;h;</div>
+<div class="line"><a name="l07037"></a><span class="lineno"> 7037</span>&#160; STBI_FREE(g);</div>
+<div class="line"><a name="l07038"></a><span class="lineno"> 7038</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07039"></a><span class="lineno"> 7039</span>&#160;}</div>
+<div class="line"><a name="l07040"></a><span class="lineno"> 7040</span>&#160;</div>
+<div class="line"><a name="l07041"></a><span class="lineno"> 7041</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)</div>
+<div class="line"><a name="l07042"></a><span class="lineno"> 7042</span>&#160;{</div>
+<div class="line"><a name="l07043"></a><span class="lineno"> 7043</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p, *c;</div>
+<div class="line"><a name="l07044"></a><span class="lineno"> 7044</span>&#160;</div>
+<div class="line"><a name="l07045"></a><span class="lineno"> 7045</span>&#160; <span class="comment">// recurse to decode the prefixes, since the linked-list is backwards,</span></div>
+<div class="line"><a name="l07046"></a><span class="lineno"> 7046</span>&#160; <span class="comment">// and working backwards through an interleaved image would be nasty</span></div>
+<div class="line"><a name="l07047"></a><span class="lineno"> 7047</span>&#160; <span class="keywordflow">if</span> (g-&gt;codes[code].prefix &gt;= 0)</div>
+<div class="line"><a name="l07048"></a><span class="lineno"> 7048</span>&#160; stbi__out_gif_code(g, g-&gt;codes[code].prefix);</div>
+<div class="line"><a name="l07049"></a><span class="lineno"> 7049</span>&#160;</div>
+<div class="line"><a name="l07050"></a><span class="lineno"> 7050</span>&#160; <span class="keywordflow">if</span> (g-&gt;cur_y &gt;= g-&gt;max_y)</div>
+<div class="line"><a name="l07051"></a><span class="lineno"> 7051</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l07052"></a><span class="lineno"> 7052</span>&#160;</div>
+<div class="line"><a name="l07053"></a><span class="lineno"> 7053</span>&#160; p = &amp;g-&gt;out[g-&gt;cur_x + g-&gt;cur_y];</div>
+<div class="line"><a name="l07054"></a><span class="lineno"> 7054</span>&#160; c = &amp;g-&gt;color_table[g-&gt;codes[code].suffix * 4];</div>
+<div class="line"><a name="l07055"></a><span class="lineno"> 7055</span>&#160;</div>
+<div class="line"><a name="l07056"></a><span class="lineno"> 7056</span>&#160; <span class="keywordflow">if</span> (c[3] &gt;= 128) {</div>
+<div class="line"><a name="l07057"></a><span class="lineno"> 7057</span>&#160; p[0] = c[2];</div>
+<div class="line"><a name="l07058"></a><span class="lineno"> 7058</span>&#160; p[1] = c[1];</div>
+<div class="line"><a name="l07059"></a><span class="lineno"> 7059</span>&#160; p[2] = c[0];</div>
+<div class="line"><a name="l07060"></a><span class="lineno"> 7060</span>&#160; p[3] = c[3];</div>
+<div class="line"><a name="l07061"></a><span class="lineno"> 7061</span>&#160; }</div>
+<div class="line"><a name="l07062"></a><span class="lineno"> 7062</span>&#160; g-&gt;cur_x += 4;</div>
+<div class="line"><a name="l07063"></a><span class="lineno"> 7063</span>&#160;</div>
+<div class="line"><a name="l07064"></a><span class="lineno"> 7064</span>&#160; <span class="keywordflow">if</span> (g-&gt;cur_x &gt;= g-&gt;max_x) {</div>
+<div class="line"><a name="l07065"></a><span class="lineno"> 7065</span>&#160; g-&gt;cur_x = g-&gt;start_x;</div>
+<div class="line"><a name="l07066"></a><span class="lineno"> 7066</span>&#160; g-&gt;cur_y += g-&gt;step;</div>
+<div class="line"><a name="l07067"></a><span class="lineno"> 7067</span>&#160;</div>
+<div class="line"><a name="l07068"></a><span class="lineno"> 7068</span>&#160; <span class="keywordflow">while</span> (g-&gt;cur_y &gt;= g-&gt;max_y &amp;&amp; g-&gt;parse &gt; 0) {</div>
+<div class="line"><a name="l07069"></a><span class="lineno"> 7069</span>&#160; g-&gt;step = (1 &lt;&lt; g-&gt;parse) * g-&gt;line_size;</div>
+<div class="line"><a name="l07070"></a><span class="lineno"> 7070</span>&#160; g-&gt;cur_y = g-&gt;start_y + (g-&gt;step &gt;&gt; 1);</div>
+<div class="line"><a name="l07071"></a><span class="lineno"> 7071</span>&#160; --g-&gt;parse;</div>
+<div class="line"><a name="l07072"></a><span class="lineno"> 7072</span>&#160; }</div>
+<div class="line"><a name="l07073"></a><span class="lineno"> 7073</span>&#160; }</div>
+<div class="line"><a name="l07074"></a><span class="lineno"> 7074</span>&#160;}</div>
+<div class="line"><a name="l07075"></a><span class="lineno"> 7075</span>&#160;</div>
+<div class="line"><a name="l07076"></a><span class="lineno"> 7076</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)</div>
+<div class="line"><a name="l07077"></a><span class="lineno"> 7077</span>&#160;{</div>
+<div class="line"><a name="l07078"></a><span class="lineno"> 7078</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> lzw_cs;</div>
+<div class="line"><a name="l07079"></a><span class="lineno"> 7079</span>&#160; stbi__int32 len, init_code;</div>
+<div class="line"><a name="l07080"></a><span class="lineno"> 7080</span>&#160; stbi__uint32 first;</div>
+<div class="line"><a name="l07081"></a><span class="lineno"> 7081</span>&#160; stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;</div>
+<div class="line"><a name="l07082"></a><span class="lineno"> 7082</span>&#160; stbi__gif_lzw *p;</div>
+<div class="line"><a name="l07083"></a><span class="lineno"> 7083</span>&#160;</div>
+<div class="line"><a name="l07084"></a><span class="lineno"> 7084</span>&#160; lzw_cs = stbi__get8(s);</div>
+<div class="line"><a name="l07085"></a><span class="lineno"> 7085</span>&#160; <span class="keywordflow">if</span> (lzw_cs &gt; 12)</div>
+<div class="line"><a name="l07086"></a><span class="lineno"> 7086</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l07087"></a><span class="lineno"> 7087</span>&#160; clear = 1 &lt;&lt; lzw_cs;</div>
+<div class="line"><a name="l07088"></a><span class="lineno"> 7088</span>&#160; first = 1;</div>
+<div class="line"><a name="l07089"></a><span class="lineno"> 7089</span>&#160; codesize = lzw_cs + 1;</div>
+<div class="line"><a name="l07090"></a><span class="lineno"> 7090</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
+<div class="line"><a name="l07091"></a><span class="lineno"> 7091</span>&#160; bits = 0;</div>
+<div class="line"><a name="l07092"></a><span class="lineno"> 7092</span>&#160; valid_bits = 0;</div>
+<div class="line"><a name="l07093"></a><span class="lineno"> 7093</span>&#160; <span class="keywordflow">for</span> (init_code = 0; init_code &lt; clear; init_code++) {</div>
+<div class="line"><a name="l07094"></a><span class="lineno"> 7094</span>&#160; g-&gt;codes[init_code].prefix = -1;</div>
+<div class="line"><a name="l07095"></a><span class="lineno"> 7095</span>&#160; g-&gt;codes[init_code].first = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)init_code;</div>
+<div class="line"><a name="l07096"></a><span class="lineno"> 7096</span>&#160; g-&gt;codes[init_code].suffix = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)init_code;</div>
+<div class="line"><a name="l07097"></a><span class="lineno"> 7097</span>&#160; }</div>
+<div class="line"><a name="l07098"></a><span class="lineno"> 7098</span>&#160;</div>
+<div class="line"><a name="l07099"></a><span class="lineno"> 7099</span>&#160; <span class="comment">// support no starting clear code</span></div>
+<div class="line"><a name="l07100"></a><span class="lineno"> 7100</span>&#160; avail = clear + 2;</div>
+<div class="line"><a name="l07101"></a><span class="lineno"> 7101</span>&#160; oldcode = -1;</div>
+<div class="line"><a name="l07102"></a><span class="lineno"> 7102</span>&#160;</div>
+<div class="line"><a name="l07103"></a><span class="lineno"> 7103</span>&#160; len = 0;</div>
+<div class="line"><a name="l07104"></a><span class="lineno"> 7104</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l07105"></a><span class="lineno"> 7105</span>&#160; <span class="keywordflow">if</span> (valid_bits &lt; codesize) {</div>
+<div class="line"><a name="l07106"></a><span class="lineno"> 7106</span>&#160; <span class="keywordflow">if</span> (len == 0) {</div>
+<div class="line"><a name="l07107"></a><span class="lineno"> 7107</span>&#160; len = stbi__get8(s); <span class="comment">// start new block</span></div>
+<div class="line"><a name="l07108"></a><span class="lineno"> 7108</span>&#160; <span class="keywordflow">if</span> (len == 0)</div>
+<div class="line"><a name="l07109"></a><span class="lineno"> 7109</span>&#160; <span class="keywordflow">return</span> g-&gt;out;</div>
+<div class="line"><a name="l07110"></a><span class="lineno"> 7110</span>&#160; }</div>
+<div class="line"><a name="l07111"></a><span class="lineno"> 7111</span>&#160; --len;</div>
+<div class="line"><a name="l07112"></a><span class="lineno"> 7112</span>&#160; bits |= (stbi__int32)stbi__get8(s) &lt;&lt; valid_bits;</div>
+<div class="line"><a name="l07113"></a><span class="lineno"> 7113</span>&#160; valid_bits += 8;</div>
+<div class="line"><a name="l07114"></a><span class="lineno"> 7114</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07115"></a><span class="lineno"> 7115</span>&#160; stbi__int32 code = bits &amp; codemask;</div>
+<div class="line"><a name="l07116"></a><span class="lineno"> 7116</span>&#160; bits &gt;&gt;= codesize;</div>
+<div class="line"><a name="l07117"></a><span class="lineno"> 7117</span>&#160; valid_bits -= codesize;</div>
+<div class="line"><a name="l07118"></a><span class="lineno"> 7118</span>&#160; <span class="comment">// @OPTIMIZE: is there some way we can accelerate the non-clear</span></div>
+<div class="line"><a name="l07119"></a><span class="lineno"> 7119</span>&#160; <span class="comment">// path?</span></div>
+<div class="line"><a name="l07120"></a><span class="lineno"> 7120</span>&#160; <span class="keywordflow">if</span> (code == clear) { <span class="comment">// clear code</span></div>
+<div class="line"><a name="l07121"></a><span class="lineno"> 7121</span>&#160; codesize = lzw_cs + 1;</div>
+<div class="line"><a name="l07122"></a><span class="lineno"> 7122</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
+<div class="line"><a name="l07123"></a><span class="lineno"> 7123</span>&#160; avail = clear + 2;</div>
+<div class="line"><a name="l07124"></a><span class="lineno"> 7124</span>&#160; oldcode = -1;</div>
+<div class="line"><a name="l07125"></a><span class="lineno"> 7125</span>&#160; first = 0;</div>
+<div class="line"><a name="l07126"></a><span class="lineno"> 7126</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code == clear + 1) { <span class="comment">// end of stream code</span></div>
+<div class="line"><a name="l07127"></a><span class="lineno"> 7127</span>&#160; stbi__skip(s, len);</div>
+<div class="line"><a name="l07128"></a><span class="lineno"> 7128</span>&#160; <span class="keywordflow">while</span> ((len = stbi__get8(s)) &gt; 0)</div>
+<div class="line"><a name="l07129"></a><span class="lineno"> 7129</span>&#160; stbi__skip(s, len);</div>
+<div class="line"><a name="l07130"></a><span class="lineno"> 7130</span>&#160; <span class="keywordflow">return</span> g-&gt;out;</div>
+<div class="line"><a name="l07131"></a><span class="lineno"> 7131</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code &lt;= avail) {</div>
+<div class="line"><a name="l07132"></a><span class="lineno"> 7132</span>&#160; <span class="keywordflow">if</span> (first)</div>
+<div class="line"><a name="l07133"></a><span class="lineno"> 7133</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;no clear code&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07134"></a><span class="lineno"> 7134</span>&#160;</div>
+<div class="line"><a name="l07135"></a><span class="lineno"> 7135</span>&#160; <span class="keywordflow">if</span> (oldcode &gt;= 0) {</div>
+<div class="line"><a name="l07136"></a><span class="lineno"> 7136</span>&#160; p = &amp;g-&gt;codes[avail++];</div>
+<div class="line"><a name="l07137"></a><span class="lineno"> 7137</span>&#160; <span class="keywordflow">if</span> (avail &gt; 4096)</div>
+<div class="line"><a name="l07138"></a><span class="lineno"> 7138</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too many codes&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07139"></a><span class="lineno"> 7139</span>&#160; p-&gt;prefix = (stbi__int16)oldcode;</div>
+<div class="line"><a name="l07140"></a><span class="lineno"> 7140</span>&#160; p-&gt;first = g-&gt;codes[oldcode].first;</div>
+<div class="line"><a name="l07141"></a><span class="lineno"> 7141</span>&#160; p-&gt;suffix =</div>
+<div class="line"><a name="l07142"></a><span class="lineno"> 7142</span>&#160; (code == avail) ? p-&gt;first : g-&gt;codes[code].first;</div>
+<div class="line"><a name="l07143"></a><span class="lineno"> 7143</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (code == avail)</div>
+<div class="line"><a name="l07144"></a><span class="lineno"> 7144</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;illegal code in raster&quot;</span>,</div>
+<div class="line"><a name="l07145"></a><span class="lineno"> 7145</span>&#160; <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
<div class="line"><a name="l07146"></a><span class="lineno"> 7146</span>&#160;</div>
-<div class="line"><a name="l07147"></a><span class="lineno"> 7147</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l07148"></a><span class="lineno"> 7148</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l07149"></a><span class="lineno"> 7149</span>&#160;<span class="comment">This software is available under 2 licenses -- choose whichever you prefer.</span></div>
-<div class="line"><a name="l07150"></a><span class="lineno"> 7150</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l07151"></a><span class="lineno"> 7151</span>&#160;<span class="comment">ALTERNATIVE A - MIT License</span></div>
-<div class="line"><a name="l07152"></a><span class="lineno"> 7152</span>&#160;<span class="comment">Copyright (c) 2017 Sean Barrett</span></div>
-<div class="line"><a name="l07153"></a><span class="lineno"> 7153</span>&#160;<span class="comment">Permission is hereby granted, free of charge, to any person obtaining a copy of</span></div>
-<div class="line"><a name="l07154"></a><span class="lineno"> 7154</span>&#160;<span class="comment">this software and associated documentation files (the &quot;Software&quot;), to deal in</span></div>
-<div class="line"><a name="l07155"></a><span class="lineno"> 7155</span>&#160;<span class="comment">the Software without restriction, including without limitation the rights to</span></div>
-<div class="line"><a name="l07156"></a><span class="lineno"> 7156</span>&#160;<span class="comment">use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l07157"></a><span class="lineno"> 7157</span>&#160;<span class="comment">of the Software, and to permit persons to whom the Software is furnished to do</span></div>
-<div class="line"><a name="l07158"></a><span class="lineno"> 7158</span>&#160;<span class="comment">so, subject to the following conditions:</span></div>
-<div class="line"><a name="l07159"></a><span class="lineno"> 7159</span>&#160;<span class="comment">The above copyright notice and this permission notice shall be included in all</span></div>
-<div class="line"><a name="l07160"></a><span class="lineno"> 7160</span>&#160;<span class="comment">copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l07161"></a><span class="lineno"> 7161</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
-<div class="line"><a name="l07162"></a><span class="lineno"> 7162</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
-<div class="line"><a name="l07163"></a><span class="lineno"> 7163</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
-<div class="line"><a name="l07164"></a><span class="lineno"> 7164</span>&#160;<span class="comment">AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
-<div class="line"><a name="l07165"></a><span class="lineno"> 7165</span>&#160;<span class="comment">LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
-<div class="line"><a name="l07166"></a><span class="lineno"> 7166</span>&#160;<span class="comment">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l07167"></a><span class="lineno"> 7167</span>&#160;<span class="comment">SOFTWARE.</span></div>
-<div class="line"><a name="l07168"></a><span class="lineno"> 7168</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l07169"></a><span class="lineno"> 7169</span>&#160;<span class="comment">ALTERNATIVE B - Public Domain (www.unlicense.org)</span></div>
-<div class="line"><a name="l07170"></a><span class="lineno"> 7170</span>&#160;<span class="comment">This is free and unencumbered software released into the public domain.</span></div>
-<div class="line"><a name="l07171"></a><span class="lineno"> 7171</span>&#160;<span class="comment">Anyone is free to copy, modify, publish, use, compile, sell, or distribute this</span></div>
-<div class="line"><a name="l07172"></a><span class="lineno"> 7172</span>&#160;<span class="comment">software, either in source code form or as a compiled binary, for any purpose,</span></div>
-<div class="line"><a name="l07173"></a><span class="lineno"> 7173</span>&#160;<span class="comment">commercial or non-commercial, and by any means.</span></div>
-<div class="line"><a name="l07174"></a><span class="lineno"> 7174</span>&#160;<span class="comment">In jurisdictions that recognize copyright laws, the author or authors of this</span></div>
-<div class="line"><a name="l07175"></a><span class="lineno"> 7175</span>&#160;<span class="comment">software dedicate any and all copyright interest in the software to the public</span></div>
-<div class="line"><a name="l07176"></a><span class="lineno"> 7176</span>&#160;<span class="comment">domain. We make this dedication for the benefit of the public at large and to</span></div>
-<div class="line"><a name="l07177"></a><span class="lineno"> 7177</span>&#160;<span class="comment">the detriment of our heirs and successors. We intend this dedication to be an</span></div>
-<div class="line"><a name="l07178"></a><span class="lineno"> 7178</span>&#160;<span class="comment">overt act of relinquishment in perpetuity of all present and future rights to</span></div>
-<div class="line"><a name="l07179"></a><span class="lineno"> 7179</span>&#160;<span class="comment">this software under copyright law.</span></div>
-<div class="line"><a name="l07180"></a><span class="lineno"> 7180</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
-<div class="line"><a name="l07181"></a><span class="lineno"> 7181</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
-<div class="line"><a name="l07182"></a><span class="lineno"> 7182</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
-<div class="line"><a name="l07183"></a><span class="lineno"> 7183</span>&#160;<span class="comment">AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l07184"></a><span class="lineno"> 7184</span>&#160;<span class="comment">ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span></div>
-<div class="line"><a name="l07185"></a><span class="lineno"> 7185</span>&#160;<span class="comment">WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></div>
-<div class="line"><a name="l07186"></a><span class="lineno"> 7186</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l07187"></a><span class="lineno"> 7187</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l07147"></a><span class="lineno"> 7147</span>&#160; stbi__out_gif_code(g, (stbi__uint16)code);</div>
+<div class="line"><a name="l07148"></a><span class="lineno"> 7148</span>&#160;</div>
+<div class="line"><a name="l07149"></a><span class="lineno"> 7149</span>&#160; <span class="keywordflow">if</span> ((avail &amp; codemask) == 0 &amp;&amp; avail &lt;= 0x0FFF) {</div>
+<div class="line"><a name="l07150"></a><span class="lineno"> 7150</span>&#160; codesize++;</div>
+<div class="line"><a name="l07151"></a><span class="lineno"> 7151</span>&#160; codemask = (1 &lt;&lt; codesize) - 1;</div>
+<div class="line"><a name="l07152"></a><span class="lineno"> 7152</span>&#160; }</div>
+<div class="line"><a name="l07153"></a><span class="lineno"> 7153</span>&#160;</div>
+<div class="line"><a name="l07154"></a><span class="lineno"> 7154</span>&#160; oldcode = code;</div>
+<div class="line"><a name="l07155"></a><span class="lineno"> 7155</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07156"></a><span class="lineno"> 7156</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;illegal code in raster&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07157"></a><span class="lineno"> 7157</span>&#160; }</div>
+<div class="line"><a name="l07158"></a><span class="lineno"> 7158</span>&#160; }</div>
+<div class="line"><a name="l07159"></a><span class="lineno"> 7159</span>&#160; }</div>
+<div class="line"><a name="l07160"></a><span class="lineno"> 7160</span>&#160;}</div>
+<div class="line"><a name="l07161"></a><span class="lineno"> 7161</span>&#160;</div>
+<div class="line"><a name="l07162"></a><span class="lineno"> 7162</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__fill_gif_background(stbi__gif *g, <span class="keywordtype">int</span> x0, <span class="keywordtype">int</span> y0, <span class="keywordtype">int</span> x1,</div>
+<div class="line"><a name="l07163"></a><span class="lineno"> 7163</span>&#160; <span class="keywordtype">int</span> y1)</div>
+<div class="line"><a name="l07164"></a><span class="lineno"> 7164</span>&#160;{</div>
+<div class="line"><a name="l07165"></a><span class="lineno"> 7165</span>&#160; <span class="keywordtype">int</span> x, y;</div>
+<div class="line"><a name="l07166"></a><span class="lineno"> 7166</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *c = g-&gt;pal[g-&gt;bgindex];</div>
+<div class="line"><a name="l07167"></a><span class="lineno"> 7167</span>&#160; <span class="keywordflow">for</span> (y = y0; y &lt; y1; y += 4 * g-&gt;w) {</div>
+<div class="line"><a name="l07168"></a><span class="lineno"> 7168</span>&#160; <span class="keywordflow">for</span> (x = x0; x &lt; x1; x += 4) {</div>
+<div class="line"><a name="l07169"></a><span class="lineno"> 7169</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *p = &amp;g-&gt;out[y + x];</div>
+<div class="line"><a name="l07170"></a><span class="lineno"> 7170</span>&#160; p[0] = c[2];</div>
+<div class="line"><a name="l07171"></a><span class="lineno"> 7171</span>&#160; p[1] = c[1];</div>
+<div class="line"><a name="l07172"></a><span class="lineno"> 7172</span>&#160; p[2] = c[0];</div>
+<div class="line"><a name="l07173"></a><span class="lineno"> 7173</span>&#160; p[3] = 0;</div>
+<div class="line"><a name="l07174"></a><span class="lineno"> 7174</span>&#160; }</div>
+<div class="line"><a name="l07175"></a><span class="lineno"> 7175</span>&#160; }</div>
+<div class="line"><a name="l07176"></a><span class="lineno"> 7176</span>&#160;}</div>
+<div class="line"><a name="l07177"></a><span class="lineno"> 7177</span>&#160;</div>
+<div class="line"><a name="l07178"></a><span class="lineno"> 7178</span>&#160;<span class="comment">// this function is designed to support animated gifs, although stb_image</span></div>
+<div class="line"><a name="l07179"></a><span class="lineno"> 7179</span>&#160;<span class="comment">// doesn&#39;t support it</span></div>
+<div class="line"><a name="l07180"></a><span class="lineno"> 7180</span>&#160;<span class="keyword">static</span> <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *stbi__gif_load_next(stbi__context *s, stbi__gif *g, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l07181"></a><span class="lineno"> 7181</span>&#160; <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l07182"></a><span class="lineno"> 7182</span>&#160;{</div>
+<div class="line"><a name="l07183"></a><span class="lineno"> 7183</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l07184"></a><span class="lineno"> 7184</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *prev_out = 0;</div>
+<div class="line"><a name="l07185"></a><span class="lineno"> 7185</span>&#160;</div>
+<div class="line"><a name="l07186"></a><span class="lineno"> 7186</span>&#160; <span class="keywordflow">if</span> (g-&gt;out == 0 &amp;&amp; !stbi__gif_header(s, g, comp, 0))</div>
+<div class="line"><a name="l07187"></a><span class="lineno"> 7187</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">// stbi__g_failure_reason set by stbi__gif_header</span></div>
+<div class="line"><a name="l07188"></a><span class="lineno"> 7188</span>&#160;</div>
+<div class="line"><a name="l07189"></a><span class="lineno"> 7189</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(g-&gt;w, g-&gt;h, 4, 0))</div>
+<div class="line"><a name="l07190"></a><span class="lineno"> 7190</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;GIF too large&quot;</span>);</div>
+<div class="line"><a name="l07191"></a><span class="lineno"> 7191</span>&#160;</div>
+<div class="line"><a name="l07192"></a><span class="lineno"> 7192</span>&#160; prev_out = g-&gt;out;</div>
+<div class="line"><a name="l07193"></a><span class="lineno"> 7193</span>&#160; g-&gt;out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(4, g-&gt;w, g-&gt;h, 0);</div>
+<div class="line"><a name="l07194"></a><span class="lineno"> 7194</span>&#160; <span class="keywordflow">if</span> (g-&gt;out == 0)</div>
+<div class="line"><a name="l07195"></a><span class="lineno"> 7195</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l07196"></a><span class="lineno"> 7196</span>&#160;</div>
+<div class="line"><a name="l07197"></a><span class="lineno"> 7197</span>&#160; <span class="keywordflow">switch</span> ((g-&gt;eflags &amp; 0x1C) &gt;&gt; 2) {</div>
+<div class="line"><a name="l07198"></a><span class="lineno"> 7198</span>&#160; <span class="keywordflow">case</span> 0: <span class="comment">// unspecified (also always used on 1st frame)</span></div>
+<div class="line"><a name="l07199"></a><span class="lineno"> 7199</span>&#160; stbi__fill_gif_background(g, 0, 0, 4 * g-&gt;w, 4 * g-&gt;w * g-&gt;h);</div>
+<div class="line"><a name="l07200"></a><span class="lineno"> 7200</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07201"></a><span class="lineno"> 7201</span>&#160; <span class="keywordflow">case</span> 1: <span class="comment">// do not dispose</span></div>
+<div class="line"><a name="l07202"></a><span class="lineno"> 7202</span>&#160; <span class="keywordflow">if</span> (prev_out)</div>
+<div class="line"><a name="l07203"></a><span class="lineno"> 7203</span>&#160; memcpy(g-&gt;out, prev_out, 4 * g-&gt;w * g-&gt;h);</div>
+<div class="line"><a name="l07204"></a><span class="lineno"> 7204</span>&#160; g-&gt;old_out = prev_out;</div>
+<div class="line"><a name="l07205"></a><span class="lineno"> 7205</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07206"></a><span class="lineno"> 7206</span>&#160; <span class="keywordflow">case</span> 2: <span class="comment">// dispose to background</span></div>
+<div class="line"><a name="l07207"></a><span class="lineno"> 7207</span>&#160; <span class="keywordflow">if</span> (prev_out)</div>
+<div class="line"><a name="l07208"></a><span class="lineno"> 7208</span>&#160; memcpy(g-&gt;out, prev_out, 4 * g-&gt;w * g-&gt;h);</div>
+<div class="line"><a name="l07209"></a><span class="lineno"> 7209</span>&#160; stbi__fill_gif_background(g, g-&gt;start_x, g-&gt;start_y, g-&gt;max_x,</div>
+<div class="line"><a name="l07210"></a><span class="lineno"> 7210</span>&#160; g-&gt;max_y);</div>
+<div class="line"><a name="l07211"></a><span class="lineno"> 7211</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07212"></a><span class="lineno"> 7212</span>&#160; <span class="keywordflow">case</span> 3: <span class="comment">// dispose to previous</span></div>
+<div class="line"><a name="l07213"></a><span class="lineno"> 7213</span>&#160; <span class="keywordflow">if</span> (g-&gt;old_out) {</div>
+<div class="line"><a name="l07214"></a><span class="lineno"> 7214</span>&#160; <span class="keywordflow">for</span> (i = g-&gt;start_y; i &lt; g-&gt;max_y; i += 4 * g-&gt;w)</div>
+<div class="line"><a name="l07215"></a><span class="lineno"> 7215</span>&#160; memcpy(&amp;g-&gt;out[i + g-&gt;start_x], &amp;g-&gt;old_out[i + g-&gt;start_x],</div>
+<div class="line"><a name="l07216"></a><span class="lineno"> 7216</span>&#160; g-&gt;max_x - g-&gt;start_x);</div>
+<div class="line"><a name="l07217"></a><span class="lineno"> 7217</span>&#160; }</div>
+<div class="line"><a name="l07218"></a><span class="lineno"> 7218</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07219"></a><span class="lineno"> 7219</span>&#160; }</div>
+<div class="line"><a name="l07220"></a><span class="lineno"> 7220</span>&#160;</div>
+<div class="line"><a name="l07221"></a><span class="lineno"> 7221</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l07222"></a><span class="lineno"> 7222</span>&#160; <span class="keywordflow">switch</span> (stbi__get8(s)) {</div>
+<div class="line"><a name="l07223"></a><span class="lineno"> 7223</span>&#160; <span class="keywordflow">case</span> 0x2C: <span class="comment">/* Image Descriptor */</span></div>
+<div class="line"><a name="l07224"></a><span class="lineno"> 7224</span>&#160; {</div>
+<div class="line"><a name="l07225"></a><span class="lineno"> 7225</span>&#160; <span class="keywordtype">int</span> prev_trans = -1;</div>
+<div class="line"><a name="l07226"></a><span class="lineno"> 7226</span>&#160; stbi__int32 x, y, w, h;</div>
+<div class="line"><a name="l07227"></a><span class="lineno"> 7227</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *o;</div>
+<div class="line"><a name="l07228"></a><span class="lineno"> 7228</span>&#160;</div>
+<div class="line"><a name="l07229"></a><span class="lineno"> 7229</span>&#160; x = stbi__get16le(s);</div>
+<div class="line"><a name="l07230"></a><span class="lineno"> 7230</span>&#160; y = stbi__get16le(s);</div>
+<div class="line"><a name="l07231"></a><span class="lineno"> 7231</span>&#160; w = stbi__get16le(s);</div>
+<div class="line"><a name="l07232"></a><span class="lineno"> 7232</span>&#160; h = stbi__get16le(s);</div>
+<div class="line"><a name="l07233"></a><span class="lineno"> 7233</span>&#160; <span class="keywordflow">if</span> (((x + w) &gt; (g-&gt;w)) || ((y + h) &gt; (g-&gt;h)))</div>
+<div class="line"><a name="l07234"></a><span class="lineno"> 7234</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;bad Image Descriptor&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07235"></a><span class="lineno"> 7235</span>&#160;</div>
+<div class="line"><a name="l07236"></a><span class="lineno"> 7236</span>&#160; g-&gt;line_size = g-&gt;w * 4;</div>
+<div class="line"><a name="l07237"></a><span class="lineno"> 7237</span>&#160; g-&gt;start_x = x * 4;</div>
+<div class="line"><a name="l07238"></a><span class="lineno"> 7238</span>&#160; g-&gt;start_y = y * g-&gt;line_size;</div>
+<div class="line"><a name="l07239"></a><span class="lineno"> 7239</span>&#160; g-&gt;max_x = g-&gt;start_x + w * 4;</div>
+<div class="line"><a name="l07240"></a><span class="lineno"> 7240</span>&#160; g-&gt;max_y = g-&gt;start_y + h * g-&gt;line_size;</div>
+<div class="line"><a name="l07241"></a><span class="lineno"> 7241</span>&#160; g-&gt;cur_x = g-&gt;start_x;</div>
+<div class="line"><a name="l07242"></a><span class="lineno"> 7242</span>&#160; g-&gt;cur_y = g-&gt;start_y;</div>
+<div class="line"><a name="l07243"></a><span class="lineno"> 7243</span>&#160;</div>
+<div class="line"><a name="l07244"></a><span class="lineno"> 7244</span>&#160; g-&gt;lflags = stbi__get8(s);</div>
+<div class="line"><a name="l07245"></a><span class="lineno"> 7245</span>&#160;</div>
+<div class="line"><a name="l07246"></a><span class="lineno"> 7246</span>&#160; <span class="keywordflow">if</span> (g-&gt;lflags &amp; 0x40) {</div>
+<div class="line"><a name="l07247"></a><span class="lineno"> 7247</span>&#160; g-&gt;step = 8 * g-&gt;line_size; <span class="comment">// first interlaced spacing</span></div>
+<div class="line"><a name="l07248"></a><span class="lineno"> 7248</span>&#160; g-&gt;parse = 3;</div>
+<div class="line"><a name="l07249"></a><span class="lineno"> 7249</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07250"></a><span class="lineno"> 7250</span>&#160; g-&gt;step = g-&gt;line_size;</div>
+<div class="line"><a name="l07251"></a><span class="lineno"> 7251</span>&#160; g-&gt;parse = 0;</div>
+<div class="line"><a name="l07252"></a><span class="lineno"> 7252</span>&#160; }</div>
+<div class="line"><a name="l07253"></a><span class="lineno"> 7253</span>&#160;</div>
+<div class="line"><a name="l07254"></a><span class="lineno"> 7254</span>&#160; <span class="keywordflow">if</span> (g-&gt;lflags &amp; 0x80) {</div>
+<div class="line"><a name="l07255"></a><span class="lineno"> 7255</span>&#160; stbi__gif_parse_colortable(s, g-&gt;lpal, 2 &lt;&lt; (g-&gt;lflags &amp; 7),</div>
+<div class="line"><a name="l07256"></a><span class="lineno"> 7256</span>&#160; g-&gt;eflags &amp; 0x01 ? g-&gt;transparent</div>
+<div class="line"><a name="l07257"></a><span class="lineno"> 7257</span>&#160; : -1);</div>
+<div class="line"><a name="l07258"></a><span class="lineno"> 7258</span>&#160; g-&gt;color_table = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)g-&gt;lpal;</div>
+<div class="line"><a name="l07259"></a><span class="lineno"> 7259</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g-&gt;flags &amp; 0x80) {</div>
+<div class="line"><a name="l07260"></a><span class="lineno"> 7260</span>&#160; <span class="keywordflow">if</span> (g-&gt;transparent &gt;= 0 &amp;&amp; (g-&gt;eflags &amp; 0x01)) {</div>
+<div class="line"><a name="l07261"></a><span class="lineno"> 7261</span>&#160; prev_trans = g-&gt;pal[g-&gt;transparent][3];</div>
+<div class="line"><a name="l07262"></a><span class="lineno"> 7262</span>&#160; g-&gt;pal[g-&gt;transparent][3] = 0;</div>
+<div class="line"><a name="l07263"></a><span class="lineno"> 7263</span>&#160; }</div>
+<div class="line"><a name="l07264"></a><span class="lineno"> 7264</span>&#160; g-&gt;color_table = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)g-&gt;pal;</div>
+<div class="line"><a name="l07265"></a><span class="lineno"> 7265</span>&#160; } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l07266"></a><span class="lineno"> 7266</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;missing color table&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07267"></a><span class="lineno"> 7267</span>&#160;</div>
+<div class="line"><a name="l07268"></a><span class="lineno"> 7268</span>&#160; o = stbi__process_gif_raster(s, g);</div>
+<div class="line"><a name="l07269"></a><span class="lineno"> 7269</span>&#160; <span class="keywordflow">if</span> (o == NULL)</div>
+<div class="line"><a name="l07270"></a><span class="lineno"> 7270</span>&#160; <span class="keywordflow">return</span> NULL;</div>
+<div class="line"><a name="l07271"></a><span class="lineno"> 7271</span>&#160;</div>
+<div class="line"><a name="l07272"></a><span class="lineno"> 7272</span>&#160; <span class="keywordflow">if</span> (prev_trans != -1)</div>
+<div class="line"><a name="l07273"></a><span class="lineno"> 7273</span>&#160; g-&gt;pal[g-&gt;transparent][3] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)prev_trans;</div>
+<div class="line"><a name="l07274"></a><span class="lineno"> 7274</span>&#160;</div>
+<div class="line"><a name="l07275"></a><span class="lineno"> 7275</span>&#160; <span class="keywordflow">return</span> o;</div>
+<div class="line"><a name="l07276"></a><span class="lineno"> 7276</span>&#160; }</div>
+<div class="line"><a name="l07277"></a><span class="lineno"> 7277</span>&#160;</div>
+<div class="line"><a name="l07278"></a><span class="lineno"> 7278</span>&#160; <span class="keywordflow">case</span> 0x21: <span class="comment">// Comment Extension.</span></div>
+<div class="line"><a name="l07279"></a><span class="lineno"> 7279</span>&#160; {</div>
+<div class="line"><a name="l07280"></a><span class="lineno"> 7280</span>&#160; <span class="keywordtype">int</span> len;</div>
+<div class="line"><a name="l07281"></a><span class="lineno"> 7281</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) == 0xF9) { <span class="comment">// Graphic Control Extension.</span></div>
+<div class="line"><a name="l07282"></a><span class="lineno"> 7282</span>&#160; len = stbi__get8(s);</div>
+<div class="line"><a name="l07283"></a><span class="lineno"> 7283</span>&#160; <span class="keywordflow">if</span> (len == 4) {</div>
+<div class="line"><a name="l07284"></a><span class="lineno"> 7284</span>&#160; g-&gt;eflags = stbi__get8(s);</div>
+<div class="line"><a name="l07285"></a><span class="lineno"> 7285</span>&#160; g-&gt;delay = stbi__get16le(s);</div>
+<div class="line"><a name="l07286"></a><span class="lineno"> 7286</span>&#160; g-&gt;transparent = stbi__get8(s);</div>
+<div class="line"><a name="l07287"></a><span class="lineno"> 7287</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07288"></a><span class="lineno"> 7288</span>&#160; stbi__skip(s, len);</div>
+<div class="line"><a name="l07289"></a><span class="lineno"> 7289</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07290"></a><span class="lineno"> 7290</span>&#160; }</div>
+<div class="line"><a name="l07291"></a><span class="lineno"> 7291</span>&#160; }</div>
+<div class="line"><a name="l07292"></a><span class="lineno"> 7292</span>&#160; <span class="keywordflow">while</span> ((len = stbi__get8(s)) != 0)</div>
+<div class="line"><a name="l07293"></a><span class="lineno"> 7293</span>&#160; stbi__skip(s, len);</div>
+<div class="line"><a name="l07294"></a><span class="lineno"> 7294</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07295"></a><span class="lineno"> 7295</span>&#160; }</div>
+<div class="line"><a name="l07296"></a><span class="lineno"> 7296</span>&#160;</div>
+<div class="line"><a name="l07297"></a><span class="lineno"> 7297</span>&#160; <span class="keywordflow">case</span> 0x3B: <span class="comment">// gif stream termination code</span></div>
+<div class="line"><a name="l07298"></a><span class="lineno"> 7298</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)s; <span class="comment">// using &#39;1&#39; causes warning on some compilers</span></div>
+<div class="line"><a name="l07299"></a><span class="lineno"> 7299</span>&#160;</div>
+<div class="line"><a name="l07300"></a><span class="lineno"> 7300</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l07301"></a><span class="lineno"> 7301</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;unknown code&quot;</span>, <span class="stringliteral">&quot;Corrupt GIF&quot;</span>);</div>
+<div class="line"><a name="l07302"></a><span class="lineno"> 7302</span>&#160; }</div>
+<div class="line"><a name="l07303"></a><span class="lineno"> 7303</span>&#160; }</div>
+<div class="line"><a name="l07304"></a><span class="lineno"> 7304</span>&#160;</div>
+<div class="line"><a name="l07305"></a><span class="lineno"> 7305</span>&#160; STBI_NOTUSED(req_comp);</div>
+<div class="line"><a name="l07306"></a><span class="lineno"> 7306</span>&#160;}</div>
+<div class="line"><a name="l07307"></a><span class="lineno"> 7307</span>&#160;</div>
+<div class="line"><a name="l07308"></a><span class="lineno"> 7308</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__gif_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l07309"></a><span class="lineno"> 7309</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l07310"></a><span class="lineno"> 7310</span>&#160;{</div>
+<div class="line"><a name="l07311"></a><span class="lineno"> 7311</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *u = 0;</div>
+<div class="line"><a name="l07312"></a><span class="lineno"> 7312</span>&#160; stbi__gif *g = (stbi__gif *)stbi__malloc(<span class="keyword">sizeof</span>(stbi__gif));</div>
+<div class="line"><a name="l07313"></a><span class="lineno"> 7313</span>&#160; memset(g, 0, <span class="keyword">sizeof</span>(*g));</div>
+<div class="line"><a name="l07314"></a><span class="lineno"> 7314</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l07315"></a><span class="lineno"> 7315</span>&#160;</div>
+<div class="line"><a name="l07316"></a><span class="lineno"> 7316</span>&#160; u = stbi__gif_load_next(s, g, comp, req_comp);</div>
+<div class="line"><a name="l07317"></a><span class="lineno"> 7317</span>&#160; <span class="keywordflow">if</span> (u == (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)s)</div>
+<div class="line"><a name="l07318"></a><span class="lineno"> 7318</span>&#160; u = 0; <span class="comment">// end of animated gif marker</span></div>
+<div class="line"><a name="l07319"></a><span class="lineno"> 7319</span>&#160; <span class="keywordflow">if</span> (u) {</div>
+<div class="line"><a name="l07320"></a><span class="lineno"> 7320</span>&#160; *x = g-&gt;w;</div>
+<div class="line"><a name="l07321"></a><span class="lineno"> 7321</span>&#160; *y = g-&gt;h;</div>
+<div class="line"><a name="l07322"></a><span class="lineno"> 7322</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != 4)</div>
+<div class="line"><a name="l07323"></a><span class="lineno"> 7323</span>&#160; u = stbi__convert_format(u, 4, req_comp, g-&gt;w, g-&gt;h);</div>
+<div class="line"><a name="l07324"></a><span class="lineno"> 7324</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (g-&gt;out)</div>
+<div class="line"><a name="l07325"></a><span class="lineno"> 7325</span>&#160; STBI_FREE(g-&gt;out);</div>
+<div class="line"><a name="l07326"></a><span class="lineno"> 7326</span>&#160; STBI_FREE(g);</div>
+<div class="line"><a name="l07327"></a><span class="lineno"> 7327</span>&#160; <span class="keywordflow">return</span> u;</div>
+<div class="line"><a name="l07328"></a><span class="lineno"> 7328</span>&#160;}</div>
+<div class="line"><a name="l07329"></a><span class="lineno"> 7329</span>&#160;</div>
+<div class="line"><a name="l07330"></a><span class="lineno"> 7330</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__gif_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07331"></a><span class="lineno"> 7331</span>&#160;{</div>
+<div class="line"><a name="l07332"></a><span class="lineno"> 7332</span>&#160; <span class="keywordflow">return</span> stbi__gif_info_raw(s, x, y, comp);</div>
+<div class="line"><a name="l07333"></a><span class="lineno"> 7333</span>&#160;}</div>
+<div class="line"><a name="l07334"></a><span class="lineno"> 7334</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07335"></a><span class="lineno"> 7335</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07336"></a><span class="lineno"> 7336</span>&#160;<span class="comment">// *************************************************************************************************</span></div>
+<div class="line"><a name="l07337"></a><span class="lineno"> 7337</span>&#160;<span class="comment">// Radiance RGBE HDR loader</span></div>
+<div class="line"><a name="l07338"></a><span class="lineno"> 7338</span>&#160;<span class="comment">// originally by Nicolas Schulz</span></div>
+<div class="line"><a name="l07339"></a><span class="lineno"> 7339</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l07340"></a><span class="lineno"> 7340</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test_core(stbi__context *s, <span class="keyword">const</span> <span class="keywordtype">char</span> *signature)</div>
+<div class="line"><a name="l07341"></a><span class="lineno"> 7341</span>&#160;{</div>
+<div class="line"><a name="l07342"></a><span class="lineno"> 7342</span>&#160; <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l07343"></a><span class="lineno"> 7343</span>&#160; <span class="keywordflow">for</span> (i = 0; signature[i]; ++i)</div>
+<div class="line"><a name="l07344"></a><span class="lineno"> 7344</span>&#160; <span class="keywordflow">if</span> (stbi__get8(s) != signature[i])</div>
+<div class="line"><a name="l07345"></a><span class="lineno"> 7345</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07346"></a><span class="lineno"> 7346</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07347"></a><span class="lineno"> 7347</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07348"></a><span class="lineno"> 7348</span>&#160;}</div>
+<div class="line"><a name="l07349"></a><span class="lineno"> 7349</span>&#160;</div>
+<div class="line"><a name="l07350"></a><span class="lineno"> 7350</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_test(stbi__context *s)</div>
+<div class="line"><a name="l07351"></a><span class="lineno"> 7351</span>&#160;{</div>
+<div class="line"><a name="l07352"></a><span class="lineno"> 7352</span>&#160; <span class="keywordtype">int</span> r = stbi__hdr_test_core(s, <span class="stringliteral">&quot;#?RADIANCE\n&quot;</span>);</div>
+<div class="line"><a name="l07353"></a><span class="lineno"> 7353</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07354"></a><span class="lineno"> 7354</span>&#160; <span class="keywordflow">if</span> (!r) {</div>
+<div class="line"><a name="l07355"></a><span class="lineno"> 7355</span>&#160; r = stbi__hdr_test_core(s, <span class="stringliteral">&quot;#?RGBE\n&quot;</span>);</div>
+<div class="line"><a name="l07356"></a><span class="lineno"> 7356</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07357"></a><span class="lineno"> 7357</span>&#160; }</div>
+<div class="line"><a name="l07358"></a><span class="lineno"> 7358</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l07359"></a><span class="lineno"> 7359</span>&#160;}</div>
+<div class="line"><a name="l07360"></a><span class="lineno"> 7360</span>&#160;</div>
+<div class="line"><a name="l07361"></a><span class="lineno"> 7361</span>&#160;<span class="preprocessor">#define STBI__HDR_BUFLEN 1024</span></div>
+<div class="line"><a name="l07362"></a><span class="lineno"> 7362</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">char</span> *stbi__hdr_gettoken(stbi__context *z, <span class="keywordtype">char</span> *buffer)</div>
+<div class="line"><a name="l07363"></a><span class="lineno"> 7363</span>&#160;{</div>
+<div class="line"><a name="l07364"></a><span class="lineno"> 7364</span>&#160; <span class="keywordtype">int</span> len = 0;</div>
+<div class="line"><a name="l07365"></a><span class="lineno"> 7365</span>&#160; <span class="keywordtype">char</span> c = <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l07366"></a><span class="lineno"> 7366</span>&#160;</div>
+<div class="line"><a name="l07367"></a><span class="lineno"> 7367</span>&#160; c = (char)stbi__get8(z);</div>
+<div class="line"><a name="l07368"></a><span class="lineno"> 7368</span>&#160;</div>
+<div class="line"><a name="l07369"></a><span class="lineno"> 7369</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(z) &amp;&amp; c != <span class="charliteral">&#39;\n&#39;</span>) {</div>
+<div class="line"><a name="l07370"></a><span class="lineno"> 7370</span>&#160; buffer[len++] = c;</div>
+<div class="line"><a name="l07371"></a><span class="lineno"> 7371</span>&#160; <span class="keywordflow">if</span> (len == STBI__HDR_BUFLEN - 1) {</div>
+<div class="line"><a name="l07372"></a><span class="lineno"> 7372</span>&#160; <span class="comment">// flush to end of line</span></div>
+<div class="line"><a name="l07373"></a><span class="lineno"> 7373</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(z) &amp;&amp; stbi__get8(z) != <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l07374"></a><span class="lineno"> 7374</span>&#160; ;</div>
+<div class="line"><a name="l07375"></a><span class="lineno"> 7375</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07376"></a><span class="lineno"> 7376</span>&#160; }</div>
+<div class="line"><a name="l07377"></a><span class="lineno"> 7377</span>&#160; c = (char)stbi__get8(z);</div>
+<div class="line"><a name="l07378"></a><span class="lineno"> 7378</span>&#160; }</div>
+<div class="line"><a name="l07379"></a><span class="lineno"> 7379</span>&#160;</div>
+<div class="line"><a name="l07380"></a><span class="lineno"> 7380</span>&#160; buffer[len] = 0;</div>
+<div class="line"><a name="l07381"></a><span class="lineno"> 7381</span>&#160; <span class="keywordflow">return</span> buffer;</div>
+<div class="line"><a name="l07382"></a><span class="lineno"> 7382</span>&#160;}</div>
+<div class="line"><a name="l07383"></a><span class="lineno"> 7383</span>&#160;</div>
+<div class="line"><a name="l07384"></a><span class="lineno"> 7384</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__hdr_convert(<span class="keywordtype">float</span> *output, <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *input, <span class="keywordtype">int</span> req_comp)</div>
+<div class="line"><a name="l07385"></a><span class="lineno"> 7385</span>&#160;{</div>
+<div class="line"><a name="l07386"></a><span class="lineno"> 7386</span>&#160; <span class="keywordflow">if</span> (input[3] != 0) {</div>
+<div class="line"><a name="l07387"></a><span class="lineno"> 7387</span>&#160; <span class="keywordtype">float</span> f1;</div>
+<div class="line"><a name="l07388"></a><span class="lineno"> 7388</span>&#160; <span class="comment">// Exponent</span></div>
+<div class="line"><a name="l07389"></a><span class="lineno"> 7389</span>&#160; f1 = (float)ldexp(1.0f, input[3] - (<span class="keywordtype">int</span>)(128 + 8));</div>
+<div class="line"><a name="l07390"></a><span class="lineno"> 7390</span>&#160; <span class="keywordflow">if</span> (req_comp &lt;= 2)</div>
+<div class="line"><a name="l07391"></a><span class="lineno"> 7391</span>&#160; output[0] = (input[0] + input[1] + input[2]) * f1 / 3;</div>
+<div class="line"><a name="l07392"></a><span class="lineno"> 7392</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07393"></a><span class="lineno"> 7393</span>&#160; output[0] = input[0] * f1;</div>
+<div class="line"><a name="l07394"></a><span class="lineno"> 7394</span>&#160; output[1] = input[1] * f1;</div>
+<div class="line"><a name="l07395"></a><span class="lineno"> 7395</span>&#160; output[2] = input[2] * f1;</div>
+<div class="line"><a name="l07396"></a><span class="lineno"> 7396</span>&#160; }</div>
+<div class="line"><a name="l07397"></a><span class="lineno"> 7397</span>&#160; <span class="keywordflow">if</span> (req_comp == 2)</div>
+<div class="line"><a name="l07398"></a><span class="lineno"> 7398</span>&#160; output[1] = 1;</div>
+<div class="line"><a name="l07399"></a><span class="lineno"> 7399</span>&#160; <span class="keywordflow">if</span> (req_comp == 4)</div>
+<div class="line"><a name="l07400"></a><span class="lineno"> 7400</span>&#160; output[3] = 1;</div>
+<div class="line"><a name="l07401"></a><span class="lineno"> 7401</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07402"></a><span class="lineno"> 7402</span>&#160; <span class="keywordflow">switch</span> (req_comp) {</div>
+<div class="line"><a name="l07403"></a><span class="lineno"> 7403</span>&#160; <span class="keywordflow">case</span> 4:</div>
+<div class="line"><a name="l07404"></a><span class="lineno"> 7404</span>&#160; output[3] = 1; <span class="comment">/* fallthrough */</span></div>
+<div class="line"><a name="l07405"></a><span class="lineno"> 7405</span>&#160; <span class="keywordflow">case</span> 3:</div>
+<div class="line"><a name="l07406"></a><span class="lineno"> 7406</span>&#160; output[0] = output[1] = output[2] = 0;</div>
+<div class="line"><a name="l07407"></a><span class="lineno"> 7407</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07408"></a><span class="lineno"> 7408</span>&#160; <span class="keywordflow">case</span> 2:</div>
+<div class="line"><a name="l07409"></a><span class="lineno"> 7409</span>&#160; output[1] = 1; <span class="comment">/* fallthrough */</span></div>
+<div class="line"><a name="l07410"></a><span class="lineno"> 7410</span>&#160; <span class="keywordflow">case</span> 1:</div>
+<div class="line"><a name="l07411"></a><span class="lineno"> 7411</span>&#160; output[0] = 0;</div>
+<div class="line"><a name="l07412"></a><span class="lineno"> 7412</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07413"></a><span class="lineno"> 7413</span>&#160; }</div>
+<div class="line"><a name="l07414"></a><span class="lineno"> 7414</span>&#160; }</div>
+<div class="line"><a name="l07415"></a><span class="lineno"> 7415</span>&#160;}</div>
+<div class="line"><a name="l07416"></a><span class="lineno"> 7416</span>&#160;</div>
+<div class="line"><a name="l07417"></a><span class="lineno"> 7417</span>&#160;<span class="keyword">static</span> <span class="keywordtype">float</span> *stbi__hdr_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l07418"></a><span class="lineno"> 7418</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l07419"></a><span class="lineno"> 7419</span>&#160;{</div>
+<div class="line"><a name="l07420"></a><span class="lineno"> 7420</span>&#160; <span class="keywordtype">char</span> buffer[STBI__HDR_BUFLEN];</div>
+<div class="line"><a name="l07421"></a><span class="lineno"> 7421</span>&#160; <span class="keywordtype">char</span> *token;</div>
+<div class="line"><a name="l07422"></a><span class="lineno"> 7422</span>&#160; <span class="keywordtype">int</span> valid = 0;</div>
+<div class="line"><a name="l07423"></a><span class="lineno"> 7423</span>&#160; <span class="keywordtype">int</span> width, height;</div>
+<div class="line"><a name="l07424"></a><span class="lineno"> 7424</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *scanline;</div>
+<div class="line"><a name="l07425"></a><span class="lineno"> 7425</span>&#160; <span class="keywordtype">float</span> *hdr_data;</div>
+<div class="line"><a name="l07426"></a><span class="lineno"> 7426</span>&#160; <span class="keywordtype">int</span> len;</div>
+<div class="line"><a name="l07427"></a><span class="lineno"> 7427</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> count, value;</div>
+<div class="line"><a name="l07428"></a><span class="lineno"> 7428</span>&#160; <span class="keywordtype">int</span> i, j, k, c1, c2, z;</div>
+<div class="line"><a name="l07429"></a><span class="lineno"> 7429</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *headerToken;</div>
+<div class="line"><a name="l07430"></a><span class="lineno"> 7430</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l07431"></a><span class="lineno"> 7431</span>&#160;</div>
+<div class="line"><a name="l07432"></a><span class="lineno"> 7432</span>&#160; <span class="comment">// Check identifier</span></div>
+<div class="line"><a name="l07433"></a><span class="lineno"> 7433</span>&#160; headerToken = stbi__hdr_gettoken(s, buffer);</div>
+<div class="line"><a name="l07434"></a><span class="lineno"> 7434</span>&#160; <span class="keywordflow">if</span> (strcmp(headerToken, <span class="stringliteral">&quot;#?RADIANCE&quot;</span>) != 0 &amp;&amp;</div>
+<div class="line"><a name="l07435"></a><span class="lineno"> 7435</span>&#160; strcmp(headerToken, <span class="stringliteral">&quot;#?RGBE&quot;</span>) != 0)</div>
+<div class="line"><a name="l07436"></a><span class="lineno"> 7436</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;not HDR&quot;</span>, <span class="stringliteral">&quot;Corrupt HDR image&quot;</span>);</div>
+<div class="line"><a name="l07437"></a><span class="lineno"> 7437</span>&#160;</div>
+<div class="line"><a name="l07438"></a><span class="lineno"> 7438</span>&#160; <span class="comment">// Parse header</span></div>
+<div class="line"><a name="l07439"></a><span class="lineno"> 7439</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l07440"></a><span class="lineno"> 7440</span>&#160; token = stbi__hdr_gettoken(s, buffer);</div>
+<div class="line"><a name="l07441"></a><span class="lineno"> 7441</span>&#160; <span class="keywordflow">if</span> (token[0] == 0)</div>
+<div class="line"><a name="l07442"></a><span class="lineno"> 7442</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07443"></a><span class="lineno"> 7443</span>&#160; <span class="keywordflow">if</span> (strcmp(token, <span class="stringliteral">&quot;FORMAT=32-bit_rle_rgbe&quot;</span>) == 0)</div>
+<div class="line"><a name="l07444"></a><span class="lineno"> 7444</span>&#160; valid = 1;</div>
+<div class="line"><a name="l07445"></a><span class="lineno"> 7445</span>&#160; }</div>
+<div class="line"><a name="l07446"></a><span class="lineno"> 7446</span>&#160;</div>
+<div class="line"><a name="l07447"></a><span class="lineno"> 7447</span>&#160; <span class="keywordflow">if</span> (!valid)</div>
+<div class="line"><a name="l07448"></a><span class="lineno"> 7448</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported format&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
+<div class="line"><a name="l07449"></a><span class="lineno"> 7449</span>&#160;</div>
+<div class="line"><a name="l07450"></a><span class="lineno"> 7450</span>&#160; <span class="comment">// Parse width and height</span></div>
+<div class="line"><a name="l07451"></a><span class="lineno"> 7451</span>&#160; <span class="comment">// can&#39;t use sscanf() if we&#39;re not using stdio!</span></div>
+<div class="line"><a name="l07452"></a><span class="lineno"> 7452</span>&#160; token = stbi__hdr_gettoken(s, buffer);</div>
+<div class="line"><a name="l07453"></a><span class="lineno"> 7453</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;-Y &quot;</span>, 3))</div>
+<div class="line"><a name="l07454"></a><span class="lineno"> 7454</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported data layout&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
+<div class="line"><a name="l07455"></a><span class="lineno"> 7455</span>&#160; token += 3;</div>
+<div class="line"><a name="l07456"></a><span class="lineno"> 7456</span>&#160; height = (int)strtol(token, &amp;token, 10);</div>
+<div class="line"><a name="l07457"></a><span class="lineno"> 7457</span>&#160; <span class="keywordflow">while</span> (*token == <span class="charliteral">&#39; &#39;</span>)</div>
+<div class="line"><a name="l07458"></a><span class="lineno"> 7458</span>&#160; ++token;</div>
+<div class="line"><a name="l07459"></a><span class="lineno"> 7459</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;+X &quot;</span>, 3))</div>
+<div class="line"><a name="l07460"></a><span class="lineno"> 7460</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;unsupported data layout&quot;</span>, <span class="stringliteral">&quot;Unsupported HDR format&quot;</span>);</div>
+<div class="line"><a name="l07461"></a><span class="lineno"> 7461</span>&#160; token += 3;</div>
+<div class="line"><a name="l07462"></a><span class="lineno"> 7462</span>&#160; width = (int)strtol(token, NULL, 10);</div>
+<div class="line"><a name="l07463"></a><span class="lineno"> 7463</span>&#160;</div>
+<div class="line"><a name="l07464"></a><span class="lineno"> 7464</span>&#160; *x = width;</div>
+<div class="line"><a name="l07465"></a><span class="lineno"> 7465</span>&#160; *y = height;</div>
+<div class="line"><a name="l07466"></a><span class="lineno"> 7466</span>&#160;</div>
+<div class="line"><a name="l07467"></a><span class="lineno"> 7467</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l07468"></a><span class="lineno"> 7468</span>&#160; *comp = 3;</div>
+<div class="line"><a name="l07469"></a><span class="lineno"> 7469</span>&#160; <span class="keywordflow">if</span> (req_comp == 0)</div>
+<div class="line"><a name="l07470"></a><span class="lineno"> 7470</span>&#160; req_comp = 3;</div>
+<div class="line"><a name="l07471"></a><span class="lineno"> 7471</span>&#160;</div>
+<div class="line"><a name="l07472"></a><span class="lineno"> 7472</span>&#160; <span class="keywordflow">if</span> (!stbi__mad4sizes_valid(width, height, req_comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0))</div>
+<div class="line"><a name="l07473"></a><span class="lineno"> 7473</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;HDR image is too large&quot;</span>);</div>
+<div class="line"><a name="l07474"></a><span class="lineno"> 7474</span>&#160;</div>
+<div class="line"><a name="l07475"></a><span class="lineno"> 7475</span>&#160; <span class="comment">// Read data</span></div>
+<div class="line"><a name="l07476"></a><span class="lineno"> 7476</span>&#160; hdr_data =</div>
+<div class="line"><a name="l07477"></a><span class="lineno"> 7477</span>&#160; (<span class="keywordtype">float</span> *)stbi__malloc_mad4(width, height, req_comp, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>), 0);</div>
+<div class="line"><a name="l07478"></a><span class="lineno"> 7478</span>&#160; <span class="keywordflow">if</span> (!hdr_data)</div>
+<div class="line"><a name="l07479"></a><span class="lineno"> 7479</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l07480"></a><span class="lineno"> 7480</span>&#160;</div>
+<div class="line"><a name="l07481"></a><span class="lineno"> 7481</span>&#160; <span class="comment">// Load image data</span></div>
+<div class="line"><a name="l07482"></a><span class="lineno"> 7482</span>&#160; <span class="comment">// image data is stored as some number of sca</span></div>
+<div class="line"><a name="l07483"></a><span class="lineno"> 7483</span>&#160; <span class="keywordflow">if</span> (width &lt; 8 || width &gt;= 32768) {</div>
+<div class="line"><a name="l07484"></a><span class="lineno"> 7484</span>&#160; <span class="comment">// Read flat data</span></div>
+<div class="line"><a name="l07485"></a><span class="lineno"> 7485</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; height; ++j) {</div>
+<div class="line"><a name="l07486"></a><span class="lineno"> 7486</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; width; ++i) {</div>
+<div class="line"><a name="l07487"></a><span class="lineno"> 7487</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> rgbe[4];</div>
+<div class="line"><a name="l07488"></a><span class="lineno"> 7488</span>&#160; main_decode_loop:</div>
+<div class="line"><a name="l07489"></a><span class="lineno"> 7489</span>&#160; stbi__getn(s, rgbe, 4);</div>
+<div class="line"><a name="l07490"></a><span class="lineno"> 7490</span>&#160; stbi__hdr_convert(hdr_data + j * width * req_comp +</div>
+<div class="line"><a name="l07491"></a><span class="lineno"> 7491</span>&#160; i * req_comp,</div>
+<div class="line"><a name="l07492"></a><span class="lineno"> 7492</span>&#160; rgbe, req_comp);</div>
+<div class="line"><a name="l07493"></a><span class="lineno"> 7493</span>&#160; }</div>
+<div class="line"><a name="l07494"></a><span class="lineno"> 7494</span>&#160; }</div>
+<div class="line"><a name="l07495"></a><span class="lineno"> 7495</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07496"></a><span class="lineno"> 7496</span>&#160; <span class="comment">// Read RLE-encoded data</span></div>
+<div class="line"><a name="l07497"></a><span class="lineno"> 7497</span>&#160; scanline = NULL;</div>
+<div class="line"><a name="l07498"></a><span class="lineno"> 7498</span>&#160;</div>
+<div class="line"><a name="l07499"></a><span class="lineno"> 7499</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; height; ++j) {</div>
+<div class="line"><a name="l07500"></a><span class="lineno"> 7500</span>&#160; c1 = stbi__get8(s);</div>
+<div class="line"><a name="l07501"></a><span class="lineno"> 7501</span>&#160; c2 = stbi__get8(s);</div>
+<div class="line"><a name="l07502"></a><span class="lineno"> 7502</span>&#160; len = stbi__get8(s);</div>
+<div class="line"><a name="l07503"></a><span class="lineno"> 7503</span>&#160; <span class="keywordflow">if</span> (c1 != 2 || c2 != 2 || (len &amp; 0x80)) {</div>
+<div class="line"><a name="l07504"></a><span class="lineno"> 7504</span>&#160; <span class="comment">// not run-length encoded, so we have to actually use THIS data</span></div>
+<div class="line"><a name="l07505"></a><span class="lineno"> 7505</span>&#160; <span class="comment">// as a decoded pixel (note this can&#39;t be a valid pixel--one of</span></div>
+<div class="line"><a name="l07506"></a><span class="lineno"> 7506</span>&#160; <span class="comment">// RGB must be &gt;= 128)</span></div>
+<div class="line"><a name="l07507"></a><span class="lineno"> 7507</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> rgbe[4];</div>
+<div class="line"><a name="l07508"></a><span class="lineno"> 7508</span>&#160; rgbe[0] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)c1;</div>
+<div class="line"><a name="l07509"></a><span class="lineno"> 7509</span>&#160; rgbe[1] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)c2;</div>
+<div class="line"><a name="l07510"></a><span class="lineno"> 7510</span>&#160; rgbe[2] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)len;</div>
+<div class="line"><a name="l07511"></a><span class="lineno"> 7511</span>&#160; rgbe[3] = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a>)stbi__get8(s);</div>
+<div class="line"><a name="l07512"></a><span class="lineno"> 7512</span>&#160; stbi__hdr_convert(hdr_data, rgbe, req_comp);</div>
+<div class="line"><a name="l07513"></a><span class="lineno"> 7513</span>&#160; i = 1;</div>
+<div class="line"><a name="l07514"></a><span class="lineno"> 7514</span>&#160; j = 0;</div>
+<div class="line"><a name="l07515"></a><span class="lineno"> 7515</span>&#160; STBI_FREE(scanline);</div>
+<div class="line"><a name="l07516"></a><span class="lineno"> 7516</span>&#160; <span class="keywordflow">goto</span> main_decode_loop; <span class="comment">// yes, this makes no sense</span></div>
+<div class="line"><a name="l07517"></a><span class="lineno"> 7517</span>&#160; }</div>
+<div class="line"><a name="l07518"></a><span class="lineno"> 7518</span>&#160; len &lt;&lt;= 8;</div>
+<div class="line"><a name="l07519"></a><span class="lineno"> 7519</span>&#160; len |= stbi__get8(s);</div>
+<div class="line"><a name="l07520"></a><span class="lineno"> 7520</span>&#160; <span class="keywordflow">if</span> (len != width) {</div>
+<div class="line"><a name="l07521"></a><span class="lineno"> 7521</span>&#160; STBI_FREE(hdr_data);</div>
+<div class="line"><a name="l07522"></a><span class="lineno"> 7522</span>&#160; STBI_FREE(scanline);</div>
+<div class="line"><a name="l07523"></a><span class="lineno"> 7523</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;invalid decoded scanline length&quot;</span>,</div>
+<div class="line"><a name="l07524"></a><span class="lineno"> 7524</span>&#160; <span class="stringliteral">&quot;corrupt HDR&quot;</span>);</div>
+<div class="line"><a name="l07525"></a><span class="lineno"> 7525</span>&#160; }</div>
+<div class="line"><a name="l07526"></a><span class="lineno"> 7526</span>&#160; <span class="keywordflow">if</span> (scanline == NULL) {</div>
+<div class="line"><a name="l07527"></a><span class="lineno"> 7527</span>&#160; scanline = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad2(width, 4, 0);</div>
+<div class="line"><a name="l07528"></a><span class="lineno"> 7528</span>&#160; <span class="keywordflow">if</span> (!scanline) {</div>
+<div class="line"><a name="l07529"></a><span class="lineno"> 7529</span>&#160; STBI_FREE(hdr_data);</div>
+<div class="line"><a name="l07530"></a><span class="lineno"> 7530</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l07531"></a><span class="lineno"> 7531</span>&#160; }</div>
+<div class="line"><a name="l07532"></a><span class="lineno"> 7532</span>&#160; }</div>
+<div class="line"><a name="l07533"></a><span class="lineno"> 7533</span>&#160;</div>
+<div class="line"><a name="l07534"></a><span class="lineno"> 7534</span>&#160; <span class="keywordflow">for</span> (k = 0; k &lt; 4; ++k) {</div>
+<div class="line"><a name="l07535"></a><span class="lineno"> 7535</span>&#160; <span class="keywordtype">int</span> nleft;</div>
+<div class="line"><a name="l07536"></a><span class="lineno"> 7536</span>&#160; i = 0;</div>
+<div class="line"><a name="l07537"></a><span class="lineno"> 7537</span>&#160; <span class="keywordflow">while</span> ((nleft = width - i) &gt; 0) {</div>
+<div class="line"><a name="l07538"></a><span class="lineno"> 7538</span>&#160; count = stbi__get8(s);</div>
+<div class="line"><a name="l07539"></a><span class="lineno"> 7539</span>&#160; <span class="keywordflow">if</span> (count &gt; 128) {</div>
+<div class="line"><a name="l07540"></a><span class="lineno"> 7540</span>&#160; <span class="comment">// Run</span></div>
+<div class="line"><a name="l07541"></a><span class="lineno"> 7541</span>&#160; value = stbi__get8(s);</div>
+<div class="line"><a name="l07542"></a><span class="lineno"> 7542</span>&#160; count -= 128;</div>
+<div class="line"><a name="l07543"></a><span class="lineno"> 7543</span>&#160; <span class="keywordflow">if</span> (count &gt; nleft) {</div>
+<div class="line"><a name="l07544"></a><span class="lineno"> 7544</span>&#160; STBI_FREE(hdr_data);</div>
+<div class="line"><a name="l07545"></a><span class="lineno"> 7545</span>&#160; STBI_FREE(scanline);</div>
+<div class="line"><a name="l07546"></a><span class="lineno"> 7546</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;corrupt&quot;</span>,</div>
+<div class="line"><a name="l07547"></a><span class="lineno"> 7547</span>&#160; <span class="stringliteral">&quot;bad RLE data in HDR&quot;</span>);</div>
+<div class="line"><a name="l07548"></a><span class="lineno"> 7548</span>&#160; }</div>
+<div class="line"><a name="l07549"></a><span class="lineno"> 7549</span>&#160; <span class="keywordflow">for</span> (z = 0; z &lt; count; ++z)</div>
+<div class="line"><a name="l07550"></a><span class="lineno"> 7550</span>&#160; scanline[i++ * 4 + k] = value;</div>
+<div class="line"><a name="l07551"></a><span class="lineno"> 7551</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l07552"></a><span class="lineno"> 7552</span>&#160; <span class="comment">// Dump</span></div>
+<div class="line"><a name="l07553"></a><span class="lineno"> 7553</span>&#160; <span class="keywordflow">if</span> (count &gt; nleft) {</div>
+<div class="line"><a name="l07554"></a><span class="lineno"> 7554</span>&#160; STBI_FREE(hdr_data);</div>
+<div class="line"><a name="l07555"></a><span class="lineno"> 7555</span>&#160; STBI_FREE(scanline);</div>
+<div class="line"><a name="l07556"></a><span class="lineno"> 7556</span>&#160; <span class="keywordflow">return</span> stbi__errpf(<span class="stringliteral">&quot;corrupt&quot;</span>,</div>
+<div class="line"><a name="l07557"></a><span class="lineno"> 7557</span>&#160; <span class="stringliteral">&quot;bad RLE data in HDR&quot;</span>);</div>
+<div class="line"><a name="l07558"></a><span class="lineno"> 7558</span>&#160; }</div>
+<div class="line"><a name="l07559"></a><span class="lineno"> 7559</span>&#160; <span class="keywordflow">for</span> (z = 0; z &lt; count; ++z)</div>
+<div class="line"><a name="l07560"></a><span class="lineno"> 7560</span>&#160; scanline[i++ * 4 + k] = stbi__get8(s);</div>
+<div class="line"><a name="l07561"></a><span class="lineno"> 7561</span>&#160; }</div>
+<div class="line"><a name="l07562"></a><span class="lineno"> 7562</span>&#160; }</div>
+<div class="line"><a name="l07563"></a><span class="lineno"> 7563</span>&#160; }</div>
+<div class="line"><a name="l07564"></a><span class="lineno"> 7564</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; width; ++i)</div>
+<div class="line"><a name="l07565"></a><span class="lineno"> 7565</span>&#160; stbi__hdr_convert(hdr_data + (j * width + i) * req_comp,</div>
+<div class="line"><a name="l07566"></a><span class="lineno"> 7566</span>&#160; scanline + i * 4, req_comp);</div>
+<div class="line"><a name="l07567"></a><span class="lineno"> 7567</span>&#160; }</div>
+<div class="line"><a name="l07568"></a><span class="lineno"> 7568</span>&#160; <span class="keywordflow">if</span> (scanline)</div>
+<div class="line"><a name="l07569"></a><span class="lineno"> 7569</span>&#160; STBI_FREE(scanline);</div>
+<div class="line"><a name="l07570"></a><span class="lineno"> 7570</span>&#160; }</div>
+<div class="line"><a name="l07571"></a><span class="lineno"> 7571</span>&#160;</div>
+<div class="line"><a name="l07572"></a><span class="lineno"> 7572</span>&#160; <span class="keywordflow">return</span> hdr_data;</div>
+<div class="line"><a name="l07573"></a><span class="lineno"> 7573</span>&#160;}</div>
+<div class="line"><a name="l07574"></a><span class="lineno"> 7574</span>&#160;</div>
+<div class="line"><a name="l07575"></a><span class="lineno"> 7575</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__hdr_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07576"></a><span class="lineno"> 7576</span>&#160;{</div>
+<div class="line"><a name="l07577"></a><span class="lineno"> 7577</span>&#160; <span class="keywordtype">char</span> buffer[STBI__HDR_BUFLEN];</div>
+<div class="line"><a name="l07578"></a><span class="lineno"> 7578</span>&#160; <span class="keywordtype">char</span> *token;</div>
+<div class="line"><a name="l07579"></a><span class="lineno"> 7579</span>&#160; <span class="keywordtype">int</span> valid = 0;</div>
+<div class="line"><a name="l07580"></a><span class="lineno"> 7580</span>&#160; <span class="keywordtype">int</span> dummy;</div>
+<div class="line"><a name="l07581"></a><span class="lineno"> 7581</span>&#160;</div>
+<div class="line"><a name="l07582"></a><span class="lineno"> 7582</span>&#160; <span class="keywordflow">if</span> (!x)</div>
+<div class="line"><a name="l07583"></a><span class="lineno"> 7583</span>&#160; x = &amp;dummy;</div>
+<div class="line"><a name="l07584"></a><span class="lineno"> 7584</span>&#160; <span class="keywordflow">if</span> (!y)</div>
+<div class="line"><a name="l07585"></a><span class="lineno"> 7585</span>&#160; y = &amp;dummy;</div>
+<div class="line"><a name="l07586"></a><span class="lineno"> 7586</span>&#160; <span class="keywordflow">if</span> (!comp)</div>
+<div class="line"><a name="l07587"></a><span class="lineno"> 7587</span>&#160; comp = &amp;dummy;</div>
+<div class="line"><a name="l07588"></a><span class="lineno"> 7588</span>&#160;</div>
+<div class="line"><a name="l07589"></a><span class="lineno"> 7589</span>&#160; <span class="keywordflow">if</span> (stbi__hdr_test(s) == 0) {</div>
+<div class="line"><a name="l07590"></a><span class="lineno"> 7590</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07591"></a><span class="lineno"> 7591</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07592"></a><span class="lineno"> 7592</span>&#160; }</div>
+<div class="line"><a name="l07593"></a><span class="lineno"> 7593</span>&#160;</div>
+<div class="line"><a name="l07594"></a><span class="lineno"> 7594</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l07595"></a><span class="lineno"> 7595</span>&#160; token = stbi__hdr_gettoken(s, buffer);</div>
+<div class="line"><a name="l07596"></a><span class="lineno"> 7596</span>&#160; <span class="keywordflow">if</span> (token[0] == 0)</div>
+<div class="line"><a name="l07597"></a><span class="lineno"> 7597</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07598"></a><span class="lineno"> 7598</span>&#160; <span class="keywordflow">if</span> (strcmp(token, <span class="stringliteral">&quot;FORMAT=32-bit_rle_rgbe&quot;</span>) == 0)</div>
+<div class="line"><a name="l07599"></a><span class="lineno"> 7599</span>&#160; valid = 1;</div>
+<div class="line"><a name="l07600"></a><span class="lineno"> 7600</span>&#160; }</div>
+<div class="line"><a name="l07601"></a><span class="lineno"> 7601</span>&#160;</div>
+<div class="line"><a name="l07602"></a><span class="lineno"> 7602</span>&#160; <span class="keywordflow">if</span> (!valid) {</div>
+<div class="line"><a name="l07603"></a><span class="lineno"> 7603</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07604"></a><span class="lineno"> 7604</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07605"></a><span class="lineno"> 7605</span>&#160; }</div>
+<div class="line"><a name="l07606"></a><span class="lineno"> 7606</span>&#160; token = stbi__hdr_gettoken(s, buffer);</div>
+<div class="line"><a name="l07607"></a><span class="lineno"> 7607</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;-Y &quot;</span>, 3)) {</div>
+<div class="line"><a name="l07608"></a><span class="lineno"> 7608</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07609"></a><span class="lineno"> 7609</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07610"></a><span class="lineno"> 7610</span>&#160; }</div>
+<div class="line"><a name="l07611"></a><span class="lineno"> 7611</span>&#160; token += 3;</div>
+<div class="line"><a name="l07612"></a><span class="lineno"> 7612</span>&#160; *y = (int)strtol(token, &amp;token, 10);</div>
+<div class="line"><a name="l07613"></a><span class="lineno"> 7613</span>&#160; <span class="keywordflow">while</span> (*token == <span class="charliteral">&#39; &#39;</span>)</div>
+<div class="line"><a name="l07614"></a><span class="lineno"> 7614</span>&#160; ++token;</div>
+<div class="line"><a name="l07615"></a><span class="lineno"> 7615</span>&#160; <span class="keywordflow">if</span> (strncmp(token, <span class="stringliteral">&quot;+X &quot;</span>, 3)) {</div>
+<div class="line"><a name="l07616"></a><span class="lineno"> 7616</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07617"></a><span class="lineno"> 7617</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07618"></a><span class="lineno"> 7618</span>&#160; }</div>
+<div class="line"><a name="l07619"></a><span class="lineno"> 7619</span>&#160; token += 3;</div>
+<div class="line"><a name="l07620"></a><span class="lineno"> 7620</span>&#160; *x = (int)strtol(token, NULL, 10);</div>
+<div class="line"><a name="l07621"></a><span class="lineno"> 7621</span>&#160; *comp = 3;</div>
+<div class="line"><a name="l07622"></a><span class="lineno"> 7622</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07623"></a><span class="lineno"> 7623</span>&#160;}</div>
+<div class="line"><a name="l07624"></a><span class="lineno"> 7624</span>&#160;<span class="preprocessor">#endif // STBI_NO_HDR</span></div>
+<div class="line"><a name="l07625"></a><span class="lineno"> 7625</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07626"></a><span class="lineno"> 7626</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l07627"></a><span class="lineno"> 7627</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__bmp_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07628"></a><span class="lineno"> 7628</span>&#160;{</div>
+<div class="line"><a name="l07629"></a><span class="lineno"> 7629</span>&#160; <span class="keywordtype">void</span> *p;</div>
+<div class="line"><a name="l07630"></a><span class="lineno"> 7630</span>&#160; stbi__bmp_data info;</div>
+<div class="line"><a name="l07631"></a><span class="lineno"> 7631</span>&#160;</div>
+<div class="line"><a name="l07632"></a><span class="lineno"> 7632</span>&#160; info.all_a = 255;</div>
+<div class="line"><a name="l07633"></a><span class="lineno"> 7633</span>&#160; p = stbi__bmp_parse_header(s, &amp;info);</div>
+<div class="line"><a name="l07634"></a><span class="lineno"> 7634</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07635"></a><span class="lineno"> 7635</span>&#160; <span class="keywordflow">if</span> (p == NULL)</div>
+<div class="line"><a name="l07636"></a><span class="lineno"> 7636</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07637"></a><span class="lineno"> 7637</span>&#160; <span class="keywordflow">if</span> (x)</div>
+<div class="line"><a name="l07638"></a><span class="lineno"> 7638</span>&#160; *x = s-&gt;img_x;</div>
+<div class="line"><a name="l07639"></a><span class="lineno"> 7639</span>&#160; <span class="keywordflow">if</span> (y)</div>
+<div class="line"><a name="l07640"></a><span class="lineno"> 7640</span>&#160; *y = s-&gt;img_y;</div>
+<div class="line"><a name="l07641"></a><span class="lineno"> 7641</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l07642"></a><span class="lineno"> 7642</span>&#160; *comp = info.ma ? 4 : 3;</div>
+<div class="line"><a name="l07643"></a><span class="lineno"> 7643</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07644"></a><span class="lineno"> 7644</span>&#160;}</div>
+<div class="line"><a name="l07645"></a><span class="lineno"> 7645</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07646"></a><span class="lineno"> 7646</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07647"></a><span class="lineno"> 7647</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
+<div class="line"><a name="l07648"></a><span class="lineno"> 7648</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__psd_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07649"></a><span class="lineno"> 7649</span>&#160;{</div>
+<div class="line"><a name="l07650"></a><span class="lineno"> 7650</span>&#160; <span class="keywordtype">int</span> channelCount, dummy;</div>
+<div class="line"><a name="l07651"></a><span class="lineno"> 7651</span>&#160; <span class="keywordflow">if</span> (!x)</div>
+<div class="line"><a name="l07652"></a><span class="lineno"> 7652</span>&#160; x = &amp;dummy;</div>
+<div class="line"><a name="l07653"></a><span class="lineno"> 7653</span>&#160; <span class="keywordflow">if</span> (!y)</div>
+<div class="line"><a name="l07654"></a><span class="lineno"> 7654</span>&#160; y = &amp;dummy;</div>
+<div class="line"><a name="l07655"></a><span class="lineno"> 7655</span>&#160; <span class="keywordflow">if</span> (!comp)</div>
+<div class="line"><a name="l07656"></a><span class="lineno"> 7656</span>&#160; comp = &amp;dummy;</div>
+<div class="line"><a name="l07657"></a><span class="lineno"> 7657</span>&#160; <span class="keywordflow">if</span> (stbi__get32be(s) != 0x38425053) {</div>
+<div class="line"><a name="l07658"></a><span class="lineno"> 7658</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07659"></a><span class="lineno"> 7659</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07660"></a><span class="lineno"> 7660</span>&#160; }</div>
+<div class="line"><a name="l07661"></a><span class="lineno"> 7661</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 1) {</div>
+<div class="line"><a name="l07662"></a><span class="lineno"> 7662</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07663"></a><span class="lineno"> 7663</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07664"></a><span class="lineno"> 7664</span>&#160; }</div>
+<div class="line"><a name="l07665"></a><span class="lineno"> 7665</span>&#160; stbi__skip(s, 6);</div>
+<div class="line"><a name="l07666"></a><span class="lineno"> 7666</span>&#160; channelCount = stbi__get16be(s);</div>
+<div class="line"><a name="l07667"></a><span class="lineno"> 7667</span>&#160; <span class="keywordflow">if</span> (channelCount &lt; 0 || channelCount &gt; 16) {</div>
+<div class="line"><a name="l07668"></a><span class="lineno"> 7668</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07669"></a><span class="lineno"> 7669</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07670"></a><span class="lineno"> 7670</span>&#160; }</div>
+<div class="line"><a name="l07671"></a><span class="lineno"> 7671</span>&#160; *y = stbi__get32be(s);</div>
+<div class="line"><a name="l07672"></a><span class="lineno"> 7672</span>&#160; *x = stbi__get32be(s);</div>
+<div class="line"><a name="l07673"></a><span class="lineno"> 7673</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 8) {</div>
+<div class="line"><a name="l07674"></a><span class="lineno"> 7674</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07675"></a><span class="lineno"> 7675</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07676"></a><span class="lineno"> 7676</span>&#160; }</div>
+<div class="line"><a name="l07677"></a><span class="lineno"> 7677</span>&#160; <span class="keywordflow">if</span> (stbi__get16be(s) != 3) {</div>
+<div class="line"><a name="l07678"></a><span class="lineno"> 7678</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07679"></a><span class="lineno"> 7679</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07680"></a><span class="lineno"> 7680</span>&#160; }</div>
+<div class="line"><a name="l07681"></a><span class="lineno"> 7681</span>&#160; *comp = 4;</div>
+<div class="line"><a name="l07682"></a><span class="lineno"> 7682</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07683"></a><span class="lineno"> 7683</span>&#160;}</div>
+<div class="line"><a name="l07684"></a><span class="lineno"> 7684</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07685"></a><span class="lineno"> 7685</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07686"></a><span class="lineno"> 7686</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
+<div class="line"><a name="l07687"></a><span class="lineno"> 7687</span>&#160;<span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pic_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07688"></a><span class="lineno"> 7688</span>&#160;{</div>
+<div class="line"><a name="l07689"></a><span class="lineno"> 7689</span>&#160; <span class="keywordtype">int</span> act_comp = 0, num_packets = 0, chained, dummy;</div>
+<div class="line"><a name="l07690"></a><span class="lineno"> 7690</span>&#160; stbi__pic_packet packets[10];</div>
+<div class="line"><a name="l07691"></a><span class="lineno"> 7691</span>&#160;</div>
+<div class="line"><a name="l07692"></a><span class="lineno"> 7692</span>&#160; <span class="keywordflow">if</span> (!x)</div>
+<div class="line"><a name="l07693"></a><span class="lineno"> 7693</span>&#160; x = &amp;dummy;</div>
+<div class="line"><a name="l07694"></a><span class="lineno"> 7694</span>&#160; <span class="keywordflow">if</span> (!y)</div>
+<div class="line"><a name="l07695"></a><span class="lineno"> 7695</span>&#160; y = &amp;dummy;</div>
+<div class="line"><a name="l07696"></a><span class="lineno"> 7696</span>&#160; <span class="keywordflow">if</span> (!comp)</div>
+<div class="line"><a name="l07697"></a><span class="lineno"> 7697</span>&#160; comp = &amp;dummy;</div>
+<div class="line"><a name="l07698"></a><span class="lineno"> 7698</span>&#160;</div>
+<div class="line"><a name="l07699"></a><span class="lineno"> 7699</span>&#160; <span class="keywordflow">if</span> (!stbi__pic_is4(s, <span class="stringliteral">&quot;\x53\x80\xF6\x34&quot;</span>)) {</div>
+<div class="line"><a name="l07700"></a><span class="lineno"> 7700</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07701"></a><span class="lineno"> 7701</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07702"></a><span class="lineno"> 7702</span>&#160; }</div>
+<div class="line"><a name="l07703"></a><span class="lineno"> 7703</span>&#160;</div>
+<div class="line"><a name="l07704"></a><span class="lineno"> 7704</span>&#160; stbi__skip(s, 88);</div>
+<div class="line"><a name="l07705"></a><span class="lineno"> 7705</span>&#160;</div>
+<div class="line"><a name="l07706"></a><span class="lineno"> 7706</span>&#160; *x = stbi__get16be(s);</div>
+<div class="line"><a name="l07707"></a><span class="lineno"> 7707</span>&#160; *y = stbi__get16be(s);</div>
+<div class="line"><a name="l07708"></a><span class="lineno"> 7708</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) {</div>
+<div class="line"><a name="l07709"></a><span class="lineno"> 7709</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07710"></a><span class="lineno"> 7710</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07711"></a><span class="lineno"> 7711</span>&#160; }</div>
+<div class="line"><a name="l07712"></a><span class="lineno"> 7712</span>&#160; <span class="keywordflow">if</span> ((*x) != 0 &amp;&amp; (1 &lt;&lt; 28) / (*x) &lt; (*y)) {</div>
+<div class="line"><a name="l07713"></a><span class="lineno"> 7713</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07714"></a><span class="lineno"> 7714</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07715"></a><span class="lineno"> 7715</span>&#160; }</div>
+<div class="line"><a name="l07716"></a><span class="lineno"> 7716</span>&#160;</div>
+<div class="line"><a name="l07717"></a><span class="lineno"> 7717</span>&#160; stbi__skip(s, 8);</div>
+<div class="line"><a name="l07718"></a><span class="lineno"> 7718</span>&#160;</div>
+<div class="line"><a name="l07719"></a><span class="lineno"> 7719</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l07720"></a><span class="lineno"> 7720</span>&#160; stbi__pic_packet *packet;</div>
+<div class="line"><a name="l07721"></a><span class="lineno"> 7721</span>&#160;</div>
+<div class="line"><a name="l07722"></a><span class="lineno"> 7722</span>&#160; <span class="keywordflow">if</span> (num_packets == <span class="keyword">sizeof</span>(packets) / <span class="keyword">sizeof</span>(packets[0]))</div>
+<div class="line"><a name="l07723"></a><span class="lineno"> 7723</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07724"></a><span class="lineno"> 7724</span>&#160;</div>
+<div class="line"><a name="l07725"></a><span class="lineno"> 7725</span>&#160; packet = &amp;packets[num_packets++];</div>
+<div class="line"><a name="l07726"></a><span class="lineno"> 7726</span>&#160; chained = stbi__get8(s);</div>
+<div class="line"><a name="l07727"></a><span class="lineno"> 7727</span>&#160; packet-&gt;size = stbi__get8(s);</div>
+<div class="line"><a name="l07728"></a><span class="lineno"> 7728</span>&#160; packet-&gt;type = stbi__get8(s);</div>
+<div class="line"><a name="l07729"></a><span class="lineno"> 7729</span>&#160; packet-&gt;channel = stbi__get8(s);</div>
+<div class="line"><a name="l07730"></a><span class="lineno"> 7730</span>&#160; act_comp |= packet-&gt;channel;</div>
+<div class="line"><a name="l07731"></a><span class="lineno"> 7731</span>&#160;</div>
+<div class="line"><a name="l07732"></a><span class="lineno"> 7732</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s)) {</div>
+<div class="line"><a name="l07733"></a><span class="lineno"> 7733</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07734"></a><span class="lineno"> 7734</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07735"></a><span class="lineno"> 7735</span>&#160; }</div>
+<div class="line"><a name="l07736"></a><span class="lineno"> 7736</span>&#160; <span class="keywordflow">if</span> (packet-&gt;size != 8) {</div>
+<div class="line"><a name="l07737"></a><span class="lineno"> 7737</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07738"></a><span class="lineno"> 7738</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07739"></a><span class="lineno"> 7739</span>&#160; }</div>
+<div class="line"><a name="l07740"></a><span class="lineno"> 7740</span>&#160; } <span class="keywordflow">while</span> (chained);</div>
+<div class="line"><a name="l07741"></a><span class="lineno"> 7741</span>&#160;</div>
+<div class="line"><a name="l07742"></a><span class="lineno"> 7742</span>&#160; *comp = (act_comp &amp; 0x10 ? 4 : 3);</div>
+<div class="line"><a name="l07743"></a><span class="lineno"> 7743</span>&#160;</div>
+<div class="line"><a name="l07744"></a><span class="lineno"> 7744</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07745"></a><span class="lineno"> 7745</span>&#160;}</div>
+<div class="line"><a name="l07746"></a><span class="lineno"> 7746</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07747"></a><span class="lineno"> 7747</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07748"></a><span class="lineno"> 7748</span>&#160; <span class="comment">// *************************************************************************************************</span></div>
+<div class="line"><a name="l07749"></a><span class="lineno"> 7749</span>&#160; <span class="comment">// Portable Gray Map and Portable Pixel Map loader</span></div>
+<div class="line"><a name="l07750"></a><span class="lineno"> 7750</span>&#160; <span class="comment">// by Ken Miller</span></div>
+<div class="line"><a name="l07751"></a><span class="lineno"> 7751</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l07752"></a><span class="lineno"> 7752</span>&#160; <span class="comment">// PGM: http://netpbm.sourceforge.net/doc/pgm.html</span></div>
+<div class="line"><a name="l07753"></a><span class="lineno"> 7753</span>&#160; <span class="comment">// PPM: http://netpbm.sourceforge.net/doc/ppm.html</span></div>
+<div class="line"><a name="l07754"></a><span class="lineno"> 7754</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l07755"></a><span class="lineno"> 7755</span>&#160; <span class="comment">// Known limitations:</span></div>
+<div class="line"><a name="l07756"></a><span class="lineno"> 7756</span>&#160; <span class="comment">// Does not support comments in the header section</span></div>
+<div class="line"><a name="l07757"></a><span class="lineno"> 7757</span>&#160; <span class="comment">// Does not support ASCII image data (formats P2 and P3)</span></div>
+<div class="line"><a name="l07758"></a><span class="lineno"> 7758</span>&#160; <span class="comment">// Does not support 16-bit-per-channel</span></div>
+<div class="line"><a name="l07759"></a><span class="lineno"> 7759</span>&#160;</div>
+<div class="line"><a name="l07760"></a><span class="lineno"> 7760</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
+<div class="line"><a name="l07761"></a><span class="lineno"> 7761</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07762"></a><span class="lineno"> 7762</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_test(stbi__context *s)</div>
+<div class="line"><a name="l07763"></a><span class="lineno"> 7763</span>&#160;{</div>
+<div class="line"><a name="l07764"></a><span class="lineno"> 7764</span>&#160; <span class="keywordtype">char</span> p, t;</div>
+<div class="line"><a name="l07765"></a><span class="lineno"> 7765</span>&#160; p = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07766"></a><span class="lineno"> 7766</span>&#160; t = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07767"></a><span class="lineno"> 7767</span>&#160; <span class="keywordflow">if</span> (p != <span class="charliteral">&#39;P&#39;</span> || (t != <span class="charliteral">&#39;5&#39;</span> &amp;&amp; t != <span class="charliteral">&#39;6&#39;</span>)) {</div>
+<div class="line"><a name="l07768"></a><span class="lineno"> 7768</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07769"></a><span class="lineno"> 7769</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07770"></a><span class="lineno"> 7770</span>&#160; }</div>
+<div class="line"><a name="l07771"></a><span class="lineno"> 7771</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07772"></a><span class="lineno"> 7772</span>&#160;}</div>
+<div class="line"><a name="l07773"></a><span class="lineno"> 7773</span>&#160;</div>
+<div class="line"><a name="l07774"></a><span class="lineno"> 7774</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> *stbi__pnm_load(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp,</div>
+<div class="line"><a name="l07775"></a><span class="lineno"> 7775</span>&#160; <span class="keywordtype">int</span> req_comp, stbi__result_info *ri)</div>
+<div class="line"><a name="l07776"></a><span class="lineno"> 7776</span>&#160;{</div>
+<div class="line"><a name="l07777"></a><span class="lineno"> 7777</span>&#160; <a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *out;</div>
+<div class="line"><a name="l07778"></a><span class="lineno"> 7778</span>&#160; STBI_NOTUSED(ri);</div>
+<div class="line"><a name="l07779"></a><span class="lineno"> 7779</span>&#160;</div>
+<div class="line"><a name="l07780"></a><span class="lineno"> 7780</span>&#160; <span class="keywordflow">if</span> (!stbi__pnm_info(s, (<span class="keywordtype">int</span> *)&amp;s-&gt;img_x, (<span class="keywordtype">int</span> *)&amp;s-&gt;img_y,</div>
+<div class="line"><a name="l07781"></a><span class="lineno"> 7781</span>&#160; (<span class="keywordtype">int</span> *)&amp;s-&gt;img_n))</div>
+<div class="line"><a name="l07782"></a><span class="lineno"> 7782</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07783"></a><span class="lineno"> 7783</span>&#160;</div>
+<div class="line"><a name="l07784"></a><span class="lineno"> 7784</span>&#160; *x = s-&gt;img_x;</div>
+<div class="line"><a name="l07785"></a><span class="lineno"> 7785</span>&#160; *y = s-&gt;img_y;</div>
+<div class="line"><a name="l07786"></a><span class="lineno"> 7786</span>&#160; <span class="keywordflow">if</span> (comp)</div>
+<div class="line"><a name="l07787"></a><span class="lineno"> 7787</span>&#160; *comp = s-&gt;img_n;</div>
+<div class="line"><a name="l07788"></a><span class="lineno"> 7788</span>&#160;</div>
+<div class="line"><a name="l07789"></a><span class="lineno"> 7789</span>&#160; <span class="keywordflow">if</span> (!stbi__mad3sizes_valid(s-&gt;img_n, s-&gt;img_x, s-&gt;img_y, 0))</div>
+<div class="line"><a name="l07790"></a><span class="lineno"> 7790</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;too large&quot;</span>, <span class="stringliteral">&quot;PNM too large&quot;</span>);</div>
+<div class="line"><a name="l07791"></a><span class="lineno"> 7791</span>&#160;</div>
+<div class="line"><a name="l07792"></a><span class="lineno"> 7792</span>&#160; out = (<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> *)stbi__malloc_mad3(s-&gt;img_n, s-&gt;img_x, s-&gt;img_y, 0);</div>
+<div class="line"><a name="l07793"></a><span class="lineno"> 7793</span>&#160; <span class="keywordflow">if</span> (!out)</div>
+<div class="line"><a name="l07794"></a><span class="lineno"> 7794</span>&#160; <span class="keywordflow">return</span> stbi__errpuc(<span class="stringliteral">&quot;outofmem&quot;</span>, <span class="stringliteral">&quot;Out of memory&quot;</span>);</div>
+<div class="line"><a name="l07795"></a><span class="lineno"> 7795</span>&#160; stbi__getn(s, out, s-&gt;img_n * s-&gt;img_x * s-&gt;img_y);</div>
+<div class="line"><a name="l07796"></a><span class="lineno"> 7796</span>&#160;</div>
+<div class="line"><a name="l07797"></a><span class="lineno"> 7797</span>&#160; <span class="keywordflow">if</span> (req_comp &amp;&amp; req_comp != s-&gt;img_n) {</div>
+<div class="line"><a name="l07798"></a><span class="lineno"> 7798</span>&#160; out = stbi__convert_format(out, s-&gt;img_n, req_comp, s-&gt;img_x, s-&gt;img_y);</div>
+<div class="line"><a name="l07799"></a><span class="lineno"> 7799</span>&#160; <span class="keywordflow">if</span> (out == NULL)</div>
+<div class="line"><a name="l07800"></a><span class="lineno"> 7800</span>&#160; <span class="keywordflow">return</span> out; <span class="comment">// stbi__convert_format frees input on failure</span></div>
+<div class="line"><a name="l07801"></a><span class="lineno"> 7801</span>&#160; }</div>
+<div class="line"><a name="l07802"></a><span class="lineno"> 7802</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l07803"></a><span class="lineno"> 7803</span>&#160;}</div>
+<div class="line"><a name="l07804"></a><span class="lineno"> 7804</span>&#160;</div>
+<div class="line"><a name="l07805"></a><span class="lineno"> 7805</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_isspace(<span class="keywordtype">char</span> c)</div>
+<div class="line"><a name="l07806"></a><span class="lineno"> 7806</span>&#160;{</div>
+<div class="line"><a name="l07807"></a><span class="lineno"> 7807</span>&#160; <span class="keywordflow">return</span> c == <span class="charliteral">&#39; &#39;</span> || c == <span class="charliteral">&#39;\t&#39;</span> || c == <span class="charliteral">&#39;\n&#39;</span> || c == <span class="charliteral">&#39;\v&#39;</span> || c == <span class="charliteral">&#39;\f&#39;</span> ||</div>
+<div class="line"><a name="l07808"></a><span class="lineno"> 7808</span>&#160; c == <span class="charliteral">&#39;\r&#39;</span>;</div>
+<div class="line"><a name="l07809"></a><span class="lineno"> 7809</span>&#160;}</div>
+<div class="line"><a name="l07810"></a><span class="lineno"> 7810</span>&#160;</div>
+<div class="line"><a name="l07811"></a><span class="lineno"> 7811</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> stbi__pnm_skip_whitespace(stbi__context *s, <span class="keywordtype">char</span> *c)</div>
+<div class="line"><a name="l07812"></a><span class="lineno"> 7812</span>&#160;{</div>
+<div class="line"><a name="l07813"></a><span class="lineno"> 7813</span>&#160; <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"><a name="l07814"></a><span class="lineno"> 7814</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; stbi__pnm_isspace(*c))</div>
+<div class="line"><a name="l07815"></a><span class="lineno"> 7815</span>&#160; *c = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07816"></a><span class="lineno"> 7816</span>&#160;</div>
+<div class="line"><a name="l07817"></a><span class="lineno"> 7817</span>&#160; <span class="keywordflow">if</span> (stbi__at_eof(s) || *c != <span class="charliteral">&#39;#&#39;</span>)</div>
+<div class="line"><a name="l07818"></a><span class="lineno"> 7818</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l07819"></a><span class="lineno"> 7819</span>&#160;</div>
+<div class="line"><a name="l07820"></a><span class="lineno"> 7820</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; *c != <span class="charliteral">&#39;\n&#39;</span> &amp;&amp; *c != <span class="charliteral">&#39;\r&#39;</span>)</div>
+<div class="line"><a name="l07821"></a><span class="lineno"> 7821</span>&#160; *c = (<span class="keywordtype">char</span>)stbi__get8(s);</div>
+<div class="line"><a name="l07822"></a><span class="lineno"> 7822</span>&#160; }</div>
+<div class="line"><a name="l07823"></a><span class="lineno"> 7823</span>&#160;}</div>
+<div class="line"><a name="l07824"></a><span class="lineno"> 7824</span>&#160;</div>
+<div class="line"><a name="l07825"></a><span class="lineno"> 7825</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_isdigit(<span class="keywordtype">char</span> c)</div>
+<div class="line"><a name="l07826"></a><span class="lineno"> 7826</span>&#160;{</div>
+<div class="line"><a name="l07827"></a><span class="lineno"> 7827</span>&#160; <span class="keywordflow">return</span> c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; c &lt;= <span class="charliteral">&#39;9&#39;</span>;</div>
+<div class="line"><a name="l07828"></a><span class="lineno"> 7828</span>&#160;}</div>
+<div class="line"><a name="l07829"></a><span class="lineno"> 7829</span>&#160;</div>
+<div class="line"><a name="l07830"></a><span class="lineno"> 7830</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_getinteger(stbi__context *s, <span class="keywordtype">char</span> *c)</div>
+<div class="line"><a name="l07831"></a><span class="lineno"> 7831</span>&#160;{</div>
+<div class="line"><a name="l07832"></a><span class="lineno"> 7832</span>&#160; <span class="keywordtype">int</span> value = 0;</div>
+<div class="line"><a name="l07833"></a><span class="lineno"> 7833</span>&#160;</div>
+<div class="line"><a name="l07834"></a><span class="lineno"> 7834</span>&#160; <span class="keywordflow">while</span> (!stbi__at_eof(s) &amp;&amp; stbi__pnm_isdigit(*c)) {</div>
+<div class="line"><a name="l07835"></a><span class="lineno"> 7835</span>&#160; value = value * 10 + (*c - <span class="charliteral">&#39;0&#39;</span>);</div>
+<div class="line"><a name="l07836"></a><span class="lineno"> 7836</span>&#160; *c = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07837"></a><span class="lineno"> 7837</span>&#160; }</div>
+<div class="line"><a name="l07838"></a><span class="lineno"> 7838</span>&#160;</div>
+<div class="line"><a name="l07839"></a><span class="lineno"> 7839</span>&#160; <span class="keywordflow">return</span> value;</div>
+<div class="line"><a name="l07840"></a><span class="lineno"> 7840</span>&#160;}</div>
+<div class="line"><a name="l07841"></a><span class="lineno"> 7841</span>&#160;</div>
+<div class="line"><a name="l07842"></a><span class="lineno"> 7842</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__pnm_info(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07843"></a><span class="lineno"> 7843</span>&#160;{</div>
+<div class="line"><a name="l07844"></a><span class="lineno"> 7844</span>&#160; <span class="keywordtype">int</span> maxv, dummy;</div>
+<div class="line"><a name="l07845"></a><span class="lineno"> 7845</span>&#160; <span class="keywordtype">char</span> c, p, t;</div>
+<div class="line"><a name="l07846"></a><span class="lineno"> 7846</span>&#160;</div>
+<div class="line"><a name="l07847"></a><span class="lineno"> 7847</span>&#160; <span class="keywordflow">if</span> (!x)</div>
+<div class="line"><a name="l07848"></a><span class="lineno"> 7848</span>&#160; x = &amp;dummy;</div>
+<div class="line"><a name="l07849"></a><span class="lineno"> 7849</span>&#160; <span class="keywordflow">if</span> (!y)</div>
+<div class="line"><a name="l07850"></a><span class="lineno"> 7850</span>&#160; y = &amp;dummy;</div>
+<div class="line"><a name="l07851"></a><span class="lineno"> 7851</span>&#160; <span class="keywordflow">if</span> (!comp)</div>
+<div class="line"><a name="l07852"></a><span class="lineno"> 7852</span>&#160; comp = &amp;dummy;</div>
+<div class="line"><a name="l07853"></a><span class="lineno"> 7853</span>&#160;</div>
+<div class="line"><a name="l07854"></a><span class="lineno"> 7854</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07855"></a><span class="lineno"> 7855</span>&#160;</div>
+<div class="line"><a name="l07856"></a><span class="lineno"> 7856</span>&#160; <span class="comment">// Get identifier</span></div>
+<div class="line"><a name="l07857"></a><span class="lineno"> 7857</span>&#160; p = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07858"></a><span class="lineno"> 7858</span>&#160; t = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07859"></a><span class="lineno"> 7859</span>&#160; <span class="keywordflow">if</span> (p != <span class="charliteral">&#39;P&#39;</span> || (t != <span class="charliteral">&#39;5&#39;</span> &amp;&amp; t != <span class="charliteral">&#39;6&#39;</span>)) {</div>
+<div class="line"><a name="l07860"></a><span class="lineno"> 7860</span>&#160; stbi__rewind(s);</div>
+<div class="line"><a name="l07861"></a><span class="lineno"> 7861</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l07862"></a><span class="lineno"> 7862</span>&#160; }</div>
+<div class="line"><a name="l07863"></a><span class="lineno"> 7863</span>&#160;</div>
+<div class="line"><a name="l07864"></a><span class="lineno"> 7864</span>&#160; *comp =</div>
+<div class="line"><a name="l07865"></a><span class="lineno"> 7865</span>&#160; (t == <span class="charliteral">&#39;6&#39;</span>) ? 3 : 1; <span class="comment">// &#39;5&#39; is 1-component .pgm; &#39;6&#39; is 3-component .ppm</span></div>
+<div class="line"><a name="l07866"></a><span class="lineno"> 7866</span>&#160;</div>
+<div class="line"><a name="l07867"></a><span class="lineno"> 7867</span>&#160; c = (char)stbi__get8(s);</div>
+<div class="line"><a name="l07868"></a><span class="lineno"> 7868</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
+<div class="line"><a name="l07869"></a><span class="lineno"> 7869</span>&#160;</div>
+<div class="line"><a name="l07870"></a><span class="lineno"> 7870</span>&#160; *x = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read width</span></div>
+<div class="line"><a name="l07871"></a><span class="lineno"> 7871</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
+<div class="line"><a name="l07872"></a><span class="lineno"> 7872</span>&#160;</div>
+<div class="line"><a name="l07873"></a><span class="lineno"> 7873</span>&#160; *y = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read height</span></div>
+<div class="line"><a name="l07874"></a><span class="lineno"> 7874</span>&#160; stbi__pnm_skip_whitespace(s, &amp;c);</div>
+<div class="line"><a name="l07875"></a><span class="lineno"> 7875</span>&#160;</div>
+<div class="line"><a name="l07876"></a><span class="lineno"> 7876</span>&#160; maxv = stbi__pnm_getinteger(s, &amp;c); <span class="comment">// read max value</span></div>
+<div class="line"><a name="l07877"></a><span class="lineno"> 7877</span>&#160;</div>
+<div class="line"><a name="l07878"></a><span class="lineno"> 7878</span>&#160; <span class="keywordflow">if</span> (maxv &gt; 255)</div>
+<div class="line"><a name="l07879"></a><span class="lineno"> 7879</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;max value &gt; 255&quot;</span>, <span class="stringliteral">&quot;PPM image not 8-bit&quot;</span>);</div>
+<div class="line"><a name="l07880"></a><span class="lineno"> 7880</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l07881"></a><span class="lineno"> 7881</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07882"></a><span class="lineno"> 7882</span>&#160;}</div>
+<div class="line"><a name="l07883"></a><span class="lineno"> 7883</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07884"></a><span class="lineno"> 7884</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07885"></a><span class="lineno"> 7885</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> stbi__info_main(stbi__context *s, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07886"></a><span class="lineno"> 7886</span>&#160;{</div>
+<div class="line"><a name="l07887"></a><span class="lineno"> 7887</span>&#160;<span class="preprocessor">#ifndef STBI_NO_JPEG</span></div>
+<div class="line"><a name="l07888"></a><span class="lineno"> 7888</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__jpeg_info(s, x, y, comp))</div>
+<div class="line"><a name="l07889"></a><span class="lineno"> 7889</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07890"></a><span class="lineno"> 7890</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07891"></a><span class="lineno"> 7891</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07892"></a><span class="lineno"> 7892</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNG</span></div>
+<div class="line"><a name="l07893"></a><span class="lineno"> 7893</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__png_info(s, x, y, comp))</div>
+<div class="line"><a name="l07894"></a><span class="lineno"> 7894</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07895"></a><span class="lineno"> 7895</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07896"></a><span class="lineno"> 7896</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07897"></a><span class="lineno"> 7897</span>&#160;<span class="preprocessor">#ifndef STBI_NO_GIF</span></div>
+<div class="line"><a name="l07898"></a><span class="lineno"> 7898</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__gif_info(s, x, y, comp))</div>
+<div class="line"><a name="l07899"></a><span class="lineno"> 7899</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07900"></a><span class="lineno"> 7900</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07901"></a><span class="lineno"> 7901</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07902"></a><span class="lineno"> 7902</span>&#160;<span class="preprocessor">#ifndef STBI_NO_BMP</span></div>
+<div class="line"><a name="l07903"></a><span class="lineno"> 7903</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__bmp_info(s, x, y, comp))</div>
+<div class="line"><a name="l07904"></a><span class="lineno"> 7904</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07905"></a><span class="lineno"> 7905</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07906"></a><span class="lineno"> 7906</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07907"></a><span class="lineno"> 7907</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PSD</span></div>
+<div class="line"><a name="l07908"></a><span class="lineno"> 7908</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__psd_info(s, x, y, comp))</div>
+<div class="line"><a name="l07909"></a><span class="lineno"> 7909</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07910"></a><span class="lineno"> 7910</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07911"></a><span class="lineno"> 7911</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07912"></a><span class="lineno"> 7912</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PIC</span></div>
+<div class="line"><a name="l07913"></a><span class="lineno"> 7913</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pic_info(s, x, y, comp))</div>
+<div class="line"><a name="l07914"></a><span class="lineno"> 7914</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07915"></a><span class="lineno"> 7915</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07916"></a><span class="lineno"> 7916</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07917"></a><span class="lineno"> 7917</span>&#160;<span class="preprocessor">#ifndef STBI_NO_PNM</span></div>
+<div class="line"><a name="l07918"></a><span class="lineno"> 7918</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__pnm_info(s, x, y, comp))</div>
+<div class="line"><a name="l07919"></a><span class="lineno"> 7919</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07920"></a><span class="lineno"> 7920</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07921"></a><span class="lineno"> 7921</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07922"></a><span class="lineno"> 7922</span>&#160;<span class="preprocessor">#ifndef STBI_NO_HDR</span></div>
+<div class="line"><a name="l07923"></a><span class="lineno"> 7923</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__hdr_info(s, x, y, comp))</div>
+<div class="line"><a name="l07924"></a><span class="lineno"> 7924</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07925"></a><span class="lineno"> 7925</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07926"></a><span class="lineno"> 7926</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07927"></a><span class="lineno"> 7927</span>&#160;<span class="comment">// test tga last because it&#39;s a crappy test!</span></div>
+<div class="line"><a name="l07928"></a><span class="lineno"> 7928</span>&#160;<span class="preprocessor">#ifndef STBI_NO_TGA</span></div>
+<div class="line"><a name="l07929"></a><span class="lineno"> 7929</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (stbi__tga_info(s, x, y, comp))</div>
+<div class="line"><a name="l07930"></a><span class="lineno"> 7930</span>&#160; <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l07931"></a><span class="lineno"> 7931</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l07932"></a><span class="lineno"> 7932</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;unknown image type&quot;</span>,</div>
+<div class="line"><a name="l07933"></a><span class="lineno"> 7933</span>&#160; <span class="stringliteral">&quot;Image not of any known type, or corrupt&quot;</span>);</div>
+<div class="line"><a name="l07934"></a><span class="lineno"> 7934</span>&#160;}</div>
+<div class="line"><a name="l07935"></a><span class="lineno"> 7935</span>&#160;</div>
+<div class="line"><a name="l07936"></a><span class="lineno"> 7936</span>&#160;<span class="preprocessor">#ifndef STBI_NO_STDIO</span></div>
+<div class="line"><a name="l07937"></a><span class="lineno"> 7937</span>&#160;<span class="preprocessor"></span><a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#aede708cca1304520b2afcf4d5eb61d70">stbi_info</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *filename, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07938"></a><span class="lineno"> 7938</span>&#160;{</div>
+<div class="line"><a name="l07939"></a><span class="lineno"> 7939</span>&#160; FILE *f = stbi__fopen(filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l07940"></a><span class="lineno"> 7940</span>&#160; <span class="keywordtype">int</span> result;</div>
+<div class="line"><a name="l07941"></a><span class="lineno"> 7941</span>&#160; <span class="keywordflow">if</span> (!f)</div>
+<div class="line"><a name="l07942"></a><span class="lineno"> 7942</span>&#160; <span class="keywordflow">return</span> stbi__err(<span class="stringliteral">&quot;can&#39;t fopen&quot;</span>, <span class="stringliteral">&quot;Unable to open file&quot;</span>);</div>
+<div class="line"><a name="l07943"></a><span class="lineno"> 7943</span>&#160; result = <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a>(f, x, y, comp);</div>
+<div class="line"><a name="l07944"></a><span class="lineno"> 7944</span>&#160; fclose(f);</div>
+<div class="line"><a name="l07945"></a><span class="lineno"> 7945</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l07946"></a><span class="lineno"> 7946</span>&#160;}</div>
+<div class="line"><a name="l07947"></a><span class="lineno"> 7947</span>&#160;</div>
+<div class="line"><a name="l07948"></a><span class="lineno"> 7948</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a28abedef4a0a93909332080df6be0021">stbi_info_from_file</a>(FILE *f, <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07949"></a><span class="lineno"> 7949</span>&#160;{</div>
+<div class="line"><a name="l07950"></a><span class="lineno"> 7950</span>&#160; <span class="keywordtype">int</span> r;</div>
+<div class="line"><a name="l07951"></a><span class="lineno"> 7951</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l07952"></a><span class="lineno"> 7952</span>&#160; <span class="keywordtype">long</span> pos = ftell(f);</div>
+<div class="line"><a name="l07953"></a><span class="lineno"> 7953</span>&#160; stbi__start_file(&amp;s, f);</div>
+<div class="line"><a name="l07954"></a><span class="lineno"> 7954</span>&#160; r = stbi__info_main(&amp;s, x, y, comp);</div>
+<div class="line"><a name="l07955"></a><span class="lineno"> 7955</span>&#160; fseek(f, pos, SEEK_SET);</div>
+<div class="line"><a name="l07956"></a><span class="lineno"> 7956</span>&#160; <span class="keywordflow">return</span> r;</div>
+<div class="line"><a name="l07957"></a><span class="lineno"> 7957</span>&#160;}</div>
+<div class="line"><a name="l07958"></a><span class="lineno"> 7958</span>&#160;<span class="preprocessor">#endif // !STBI_NO_STDIO</span></div>
+<div class="line"><a name="l07959"></a><span class="lineno"> 7959</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07960"></a><span class="lineno"> 7960</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#acfef077febce3bc3f1f339de478f3315">stbi_info_from_memory</a>(<a class="code" href="stb__image_8h.html#a28eb51a1512ce382ee50f20e1d04d50d">stbi_uc</a> <span class="keyword">const</span> *buffer, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> *x,</div>
+<div class="line"><a name="l07961"></a><span class="lineno"> 7961</span>&#160; <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07962"></a><span class="lineno"> 7962</span>&#160;{</div>
+<div class="line"><a name="l07963"></a><span class="lineno"> 7963</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l07964"></a><span class="lineno"> 7964</span>&#160; stbi__start_mem(&amp;s, buffer, len);</div>
+<div class="line"><a name="l07965"></a><span class="lineno"> 7965</span>&#160; <span class="keywordflow">return</span> stbi__info_main(&amp;s, x, y, comp);</div>
+<div class="line"><a name="l07966"></a><span class="lineno"> 7966</span>&#160;}</div>
+<div class="line"><a name="l07967"></a><span class="lineno"> 7967</span>&#160;</div>
+<div class="line"><a name="l07968"></a><span class="lineno"> 7968</span>&#160;<a class="code" href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a> <span class="keywordtype">int</span> <a class="code" href="stb__image_8h.html#a86291c64cb663f41a34647d5e1abf363">stbi_info_from_callbacks</a>(<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> <span class="keyword">const</span> *c, <span class="keywordtype">void</span> *user,</div>
+<div class="line"><a name="l07969"></a><span class="lineno"> 7969</span>&#160; <span class="keywordtype">int</span> *x, <span class="keywordtype">int</span> *y, <span class="keywordtype">int</span> *comp)</div>
+<div class="line"><a name="l07970"></a><span class="lineno"> 7970</span>&#160;{</div>
+<div class="line"><a name="l07971"></a><span class="lineno"> 7971</span>&#160; stbi__context s;</div>
+<div class="line"><a name="l07972"></a><span class="lineno"> 7972</span>&#160; stbi__start_callbacks(&amp;s, (<a class="code" href="structstbi__io__callbacks.html">stbi_io_callbacks</a> *)c, user);</div>
+<div class="line"><a name="l07973"></a><span class="lineno"> 7973</span>&#160; <span class="keywordflow">return</span> stbi__info_main(&amp;s, x, y, comp);</div>
+<div class="line"><a name="l07974"></a><span class="lineno"> 7974</span>&#160;}</div>
+<div class="line"><a name="l07975"></a><span class="lineno"> 7975</span>&#160;</div>
+<div class="line"><a name="l07976"></a><span class="lineno"> 7976</span>&#160;<span class="preprocessor">#endif // STB_IMAGE_IMPLEMENTATION</span></div>
+<div class="line"><a name="l07977"></a><span class="lineno"> 7977</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l07978"></a><span class="lineno"> 7978</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l07979"></a><span class="lineno"> 7979</span>&#160;<span class="comment"> revision history:</span></div>
+<div class="line"><a name="l07980"></a><span class="lineno"> 7980</span>&#160;<span class="comment"> 2.16 (2017-07-23) all functions have 16-bit variants;</span></div>
+<div class="line"><a name="l07981"></a><span class="lineno"> 7981</span>&#160;<span class="comment"> STBI_NO_STDIO works again;</span></div>
+<div class="line"><a name="l07982"></a><span class="lineno"> 7982</span>&#160;<span class="comment"> compilation fixes;</span></div>
+<div class="line"><a name="l07983"></a><span class="lineno"> 7983</span>&#160;<span class="comment"> fix rounding in unpremultiply;</span></div>
+<div class="line"><a name="l07984"></a><span class="lineno"> 7984</span>&#160;<span class="comment"> optimize vertical flip;</span></div>
+<div class="line"><a name="l07985"></a><span class="lineno"> 7985</span>&#160;<span class="comment"> disable raw_len validation;</span></div>
+<div class="line"><a name="l07986"></a><span class="lineno"> 7986</span>&#160;<span class="comment"> documentation fixes</span></div>
+<div class="line"><a name="l07987"></a><span class="lineno"> 7987</span>&#160;<span class="comment"> 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;</span></div>
+<div class="line"><a name="l07988"></a><span class="lineno"> 7988</span>&#160;<span class="comment"> warning fixes; disable run-time SSE detection on gcc;</span></div>
+<div class="line"><a name="l07989"></a><span class="lineno"> 7989</span>&#160;<span class="comment"> uniform handling of optional &quot;return&quot; values;</span></div>
+<div class="line"><a name="l07990"></a><span class="lineno"> 7990</span>&#160;<span class="comment"> thread-safe initialization of zlib tables</span></div>
+<div class="line"><a name="l07991"></a><span class="lineno"> 7991</span>&#160;<span class="comment"> 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet</span></div>
+<div class="line"><a name="l07992"></a><span class="lineno"> 7992</span>&#160;<span class="comment"> JPGs 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now 2.12</span></div>
+<div class="line"><a name="l07993"></a><span class="lineno"> 7993</span>&#160;<span class="comment"> (2016-04-02) fix typo in 2.11 PSD fix that caused crashes 2.11 (2016-04-02)</span></div>
+<div class="line"><a name="l07994"></a><span class="lineno"> 7994</span>&#160;<span class="comment"> allocate large structures on the stack remove white matting for transparent</span></div>
+<div class="line"><a name="l07995"></a><span class="lineno"> 7995</span>&#160;<span class="comment"> PSD fix reported channel count for PNG &amp; BMP re-enable SSE2 in non-gcc 64-bit</span></div>
+<div class="line"><a name="l07996"></a><span class="lineno"> 7996</span>&#160;<span class="comment"> support RGB-formatted JPEG</span></div>
+<div class="line"><a name="l07997"></a><span class="lineno"> 7997</span>&#160;<span class="comment"> read 16-bit PNGs (only as 8-bit)</span></div>
+<div class="line"><a name="l07998"></a><span class="lineno"> 7998</span>&#160;<span class="comment"> 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED</span></div>
+<div class="line"><a name="l07999"></a><span class="lineno"> 7999</span>&#160;<span class="comment"> 2.09 (2016-01-16) allow comments in PNM files</span></div>
+<div class="line"><a name="l08000"></a><span class="lineno"> 8000</span>&#160;<span class="comment"> 16-bit-per-pixel TGA (not bit-per-component)</span></div>
+<div class="line"><a name="l08001"></a><span class="lineno"> 8001</span>&#160;<span class="comment"> info() for TGA could break due to .hdr handling</span></div>
+<div class="line"><a name="l08002"></a><span class="lineno"> 8002</span>&#160;<span class="comment"> info() for BMP to shares code instead of sloppy parse</span></div>
+<div class="line"><a name="l08003"></a><span class="lineno"> 8003</span>&#160;<span class="comment"> can use STBI_REALLOC_SIZED if allocator doesn&#39;t support</span></div>
+<div class="line"><a name="l08004"></a><span class="lineno"> 8004</span>&#160;<span class="comment"> realloc code cleanup 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD</span></div>
+<div class="line"><a name="l08005"></a><span class="lineno"> 8005</span>&#160;<span class="comment"> as RGBA 2.07 (2015-09-13) fix compiler warnings partial animated GIF support</span></div>
+<div class="line"><a name="l08006"></a><span class="lineno"> 8006</span>&#160;<span class="comment"> limited 16-bpc PSD support</span></div>
+<div class="line"><a name="l08007"></a><span class="lineno"> 8007</span>&#160;<span class="comment"> #ifdef unused functions</span></div>
+<div class="line"><a name="l08008"></a><span class="lineno"> 8008</span>&#160;<span class="comment"> bug with &lt; 92 byte PIC,PNM,HDR,TGA</span></div>
+<div class="line"><a name="l08009"></a><span class="lineno"> 8009</span>&#160;<span class="comment"> 2.06 (2015-04-19) fix bug where PSD returns wrong &#39;*comp&#39; value</span></div>
+<div class="line"><a name="l08010"></a><span class="lineno"> 8010</span>&#160;<span class="comment"> 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning</span></div>
+<div class="line"><a name="l08011"></a><span class="lineno"> 8011</span>&#160;<span class="comment"> 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit</span></div>
+<div class="line"><a name="l08012"></a><span class="lineno"> 8012</span>&#160;<span class="comment"> 2.03 (2015-04-12) extra corruption checking (mmozeiko)</span></div>
+<div class="line"><a name="l08013"></a><span class="lineno"> 8013</span>&#160;<span class="comment"> stbi_set_flip_vertically_on_load (nguillemot)</span></div>
+<div class="line"><a name="l08014"></a><span class="lineno"> 8014</span>&#160;<span class="comment"> fix NEON support; fix mingw support</span></div>
+<div class="line"><a name="l08015"></a><span class="lineno"> 8015</span>&#160;<span class="comment"> 2.02 (2015-01-19) fix incorrect assert, fix warning</span></div>
+<div class="line"><a name="l08016"></a><span class="lineno"> 8016</span>&#160;<span class="comment"> 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit</span></div>
+<div class="line"><a name="l08017"></a><span class="lineno"> 8017</span>&#160;<span class="comment"> without -msse2 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG 2.00</span></div>
+<div class="line"><a name="l08018"></a><span class="lineno"> 8018</span>&#160;<span class="comment"> (2014-12-25) optimize JPG, including x86 SSE2 &amp; NEON SIMD (ryg) progressive</span></div>
+<div class="line"><a name="l08019"></a><span class="lineno"> 8019</span>&#160;<span class="comment"> JPEG (stb) PGM/PPM support (Ken Miller) STBI_MALLOC,STBI_REALLOC,STBI_FREE</span></div>
+<div class="line"><a name="l08020"></a><span class="lineno"> 8020</span>&#160;<span class="comment"> GIF bugfix -- seemingly never worked</span></div>
+<div class="line"><a name="l08021"></a><span class="lineno"> 8021</span>&#160;<span class="comment"> STBI_NO_*, STBI_ONLY_*</span></div>
+<div class="line"><a name="l08022"></a><span class="lineno"> 8022</span>&#160;<span class="comment"> 1.48 (2014-12-14) fix incorrectly-named assert()</span></div>
+<div class="line"><a name="l08023"></a><span class="lineno"> 8023</span>&#160;<span class="comment"> 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar</span></div>
+<div class="line"><a name="l08024"></a><span class="lineno"> 8024</span>&#160;<span class="comment"> Cornut &amp; stb) optimize PNG (ryg) fix bug in interlaced PNG with</span></div>
+<div class="line"><a name="l08025"></a><span class="lineno"> 8025</span>&#160;<span class="comment"> user-specified channel count (stb) 1.46 (2014-08-26) fix broken tRNS chunk</span></div>
+<div class="line"><a name="l08026"></a><span class="lineno"> 8026</span>&#160;<span class="comment"> (colorkey-style transparency) in non-paletted PNG 1.45 (2014-08-16) fix</span></div>
+<div class="line"><a name="l08027"></a><span class="lineno"> 8027</span>&#160;<span class="comment"> MSVC-ARM internal compiler error by wrapping malloc 1.44 (2014-08-07)</span></div>
+<div class="line"><a name="l08028"></a><span class="lineno"> 8028</span>&#160;<span class="comment"> various warning fixes from Ronny Chevalier</span></div>
+<div class="line"><a name="l08029"></a><span class="lineno"> 8029</span>&#160;<span class="comment"> 1.43 (2014-07-15)</span></div>
+<div class="line"><a name="l08030"></a><span class="lineno"> 8030</span>&#160;<span class="comment"> fix MSVC-only compiler problem in code changed in 1.42</span></div>
+<div class="line"><a name="l08031"></a><span class="lineno"> 8031</span>&#160;<span class="comment"> 1.42 (2014-07-09)</span></div>
+<div class="line"><a name="l08032"></a><span class="lineno"> 8032</span>&#160;<span class="comment"> don&#39;t define _CRT_SECURE_NO_WARNINGS (affects user code)</span></div>
+<div class="line"><a name="l08033"></a><span class="lineno"> 8033</span>&#160;<span class="comment"> fixes to stbi__cleanup_jpeg path</span></div>
+<div class="line"><a name="l08034"></a><span class="lineno"> 8034</span>&#160;<span class="comment"> added STBI_ASSERT to avoid requiring assert.h</span></div>
+<div class="line"><a name="l08035"></a><span class="lineno"> 8035</span>&#160;<span class="comment"> 1.41 (2014-06-25)</span></div>
+<div class="line"><a name="l08036"></a><span class="lineno"> 8036</span>&#160;<span class="comment"> fix search&amp;replace from 1.36 that messed up comments/error</span></div>
+<div class="line"><a name="l08037"></a><span class="lineno"> 8037</span>&#160;<span class="comment"> messages 1.40 (2014-06-22) fix gcc struct-initialization warning 1.39</span></div>
+<div class="line"><a name="l08038"></a><span class="lineno"> 8038</span>&#160;<span class="comment"> (2014-06-15) fix to TGA optimization when req_comp != number of components in</span></div>
+<div class="line"><a name="l08039"></a><span class="lineno"> 8039</span>&#160;<span class="comment"> TGA; fix to GIF loading because BMP wasn&#39;t rewinding (whoops, no GIFs in my</span></div>
+<div class="line"><a name="l08040"></a><span class="lineno"> 8040</span>&#160;<span class="comment"> test suite) add support for BMP version 5 (more ignored fields) 1.38</span></div>
+<div class="line"><a name="l08041"></a><span class="lineno"> 8041</span>&#160;<span class="comment"> (2014-06-06) suppress MSVC warnings on integer casts truncating values fix</span></div>
+<div class="line"><a name="l08042"></a><span class="lineno"> 8042</span>&#160;<span class="comment"> accidental rename of &#39;skip&#39; field of I/O 1.37 (2014-06-04) remove duplicate</span></div>
+<div class="line"><a name="l08043"></a><span class="lineno"> 8043</span>&#160;<span class="comment"> typedef 1.36 (2014-06-03) convert to header file single-file library if</span></div>
+<div class="line"><a name="l08044"></a><span class="lineno"> 8044</span>&#160;<span class="comment"> de-iphone isn&#39;t set, load iphone images color-swapped instead of returning</span></div>
+<div class="line"><a name="l08045"></a><span class="lineno"> 8045</span>&#160;<span class="comment"> NULL 1.35 (2014-05-27) various warnings fix broken STBI_SIMD path fix bug</span></div>
+<div class="line"><a name="l08046"></a><span class="lineno"> 8046</span>&#160;<span class="comment"> where stbi_load_from_file no longer left file pointer in correct place fix</span></div>
+<div class="line"><a name="l08047"></a><span class="lineno"> 8047</span>&#160;<span class="comment"> broken non-easy path for 32-bit BMP (possibly never used) TGA optimization by</span></div>
+<div class="line"><a name="l08048"></a><span class="lineno"> 8048</span>&#160;<span class="comment"> Arseny Kapoulkine 1.34 (unknown) use STBI_NOTUSED in</span></div>
+<div class="line"><a name="l08049"></a><span class="lineno"> 8049</span>&#160;<span class="comment"> stbi__resample_row_generic(), fix one more leak in tga failure case 1.33</span></div>
+<div class="line"><a name="l08050"></a><span class="lineno"> 8050</span>&#160;<span class="comment"> (2011-07-14) make stbi_is_hdr work in STBI_NO_HDR (as specified), minor</span></div>
+<div class="line"><a name="l08051"></a><span class="lineno"> 8051</span>&#160;<span class="comment"> compiler-friendly improvements 1.32 (2011-07-13) support for &quot;info&quot; function</span></div>
+<div class="line"><a name="l08052"></a><span class="lineno"> 8052</span>&#160;<span class="comment"> for all supported filetypes (SpartanJ) 1.31 (2011-06-20) a few more leak</span></div>
+<div class="line"><a name="l08053"></a><span class="lineno"> 8053</span>&#160;<span class="comment"> fixes, bug in PNG handling (SpartanJ) 1.30 (2011-06-11) added ability to</span></div>
+<div class="line"><a name="l08054"></a><span class="lineno"> 8054</span>&#160;<span class="comment"> load files via callbacks to accomidate custom input streams (Ben Wenger)</span></div>
+<div class="line"><a name="l08055"></a><span class="lineno"> 8055</span>&#160;<span class="comment"> removed deprecated format-specific test/load functions</span></div>
+<div class="line"><a name="l08056"></a><span class="lineno"> 8056</span>&#160;<span class="comment"> removed support for installable file formats (stbi_loader) --</span></div>
+<div class="line"><a name="l08057"></a><span class="lineno"> 8057</span>&#160;<span class="comment"> would have been broken for IO callbacks anyway error cases in bmp and tga</span></div>
+<div class="line"><a name="l08058"></a><span class="lineno"> 8058</span>&#160;<span class="comment"> give messages and don&#39;t leak (Raymond Barbiero, grisha) fix inefficiency in</span></div>
+<div class="line"><a name="l08059"></a><span class="lineno"> 8059</span>&#160;<span class="comment"> decoding 32-bit BMP (David Woo) 1.29 (2010-08-16) various warning fixes from</span></div>
+<div class="line"><a name="l08060"></a><span class="lineno"> 8060</span>&#160;<span class="comment"> Aurelien Pocheville 1.28 (2010-08-01) fix bug in GIF palette transparency</span></div>
+<div class="line"><a name="l08061"></a><span class="lineno"> 8061</span>&#160;<span class="comment"> (SpartanJ) 1.27 (2010-08-01) cast-to-stbi_uc to fix warnings 1.26</span></div>
+<div class="line"><a name="l08062"></a><span class="lineno"> 8062</span>&#160;<span class="comment"> (2010-07-24) fix bug in file buffering for PNG reported by SpartanJ 1.25</span></div>
+<div class="line"><a name="l08063"></a><span class="lineno"> 8063</span>&#160;<span class="comment"> (2010-07-17) refix trans_data warning (Won Chun) 1.24 (2010-07-12) perf</span></div>
+<div class="line"><a name="l08064"></a><span class="lineno"> 8064</span>&#160;<span class="comment"> improvements reading from files on platforms with lock-heavy fgetc() minor</span></div>
+<div class="line"><a name="l08065"></a><span class="lineno"> 8065</span>&#160;<span class="comment"> perf improvements for jpeg deprecated type-specific functions so we&#39;ll get</span></div>
+<div class="line"><a name="l08066"></a><span class="lineno"> 8066</span>&#160;<span class="comment"> feedback if they&#39;re needed attempt to fix trans_data warning (Won Chun) 1.23</span></div>
+<div class="line"><a name="l08067"></a><span class="lineno"> 8067</span>&#160;<span class="comment"> fixed bug in iPhone support 1.22 (2010-07-10) removed image *writing*</span></div>
+<div class="line"><a name="l08068"></a><span class="lineno"> 8068</span>&#160;<span class="comment"> support stbi_info support from Jetro Lauha GIF support from Jean-Marc Lienher</span></div>
+<div class="line"><a name="l08069"></a><span class="lineno"> 8069</span>&#160;<span class="comment"> iPhone PNG-extensions from James Brown</span></div>
+<div class="line"><a name="l08070"></a><span class="lineno"> 8070</span>&#160;<span class="comment"> warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err.</span></div>
+<div class="line"><a name="l08071"></a><span class="lineno"> 8071</span>&#160;<span class="comment"> Janez (U+017D)emva) 1.21 fix use of &#39;stbi_uc&#39; in header (reported by jon</span></div>
+<div class="line"><a name="l08072"></a><span class="lineno"> 8072</span>&#160;<span class="comment"> blow) 1.20 added support for Softimage PIC, by Tom Seddon 1.19 bug in</span></div>
+<div class="line"><a name="l08073"></a><span class="lineno"> 8073</span>&#160;<span class="comment"> interlaced PNG corruption check (found by ryg) 1.18 (2008-08-02) fix a</span></div>
+<div class="line"><a name="l08074"></a><span class="lineno"> 8074</span>&#160;<span class="comment"> threading bug (local mutable static) 1.17 support interlaced PNG 1.16</span></div>
+<div class="line"><a name="l08075"></a><span class="lineno"> 8075</span>&#160;<span class="comment"> major bugfix - stbi__convert_format converted one too many pixels 1.15</span></div>
+<div class="line"><a name="l08076"></a><span class="lineno"> 8076</span>&#160;<span class="comment"> initialize some fields for thread safety 1.14 fix threadsafe conversion</span></div>
+<div class="line"><a name="l08077"></a><span class="lineno"> 8077</span>&#160;<span class="comment"> bug header-file-only version (#define STBI_HEADER_FILE_ONLY before including)</span></div>
+<div class="line"><a name="l08078"></a><span class="lineno"> 8078</span>&#160;<span class="comment"> 1.13 threadsafe</span></div>
+<div class="line"><a name="l08079"></a><span class="lineno"> 8079</span>&#160;<span class="comment"> 1.12 const qualifiers in the API</span></div>
+<div class="line"><a name="l08080"></a><span class="lineno"> 8080</span>&#160;<span class="comment"> 1.11 Support installable IDCT, colorspace conversion routines</span></div>
+<div class="line"><a name="l08081"></a><span class="lineno"> 8081</span>&#160;<span class="comment"> 1.10 Fixes for 64-bit (don&#39;t use &quot;unsigned long&quot;)</span></div>
+<div class="line"><a name="l08082"></a><span class="lineno"> 8082</span>&#160;<span class="comment"> optimized upsampling by Fabian &quot;ryg&quot; Giesen</span></div>
+<div class="line"><a name="l08083"></a><span class="lineno"> 8083</span>&#160;<span class="comment"> 1.09 Fix format-conversion for PSD code (bad global variables!)</span></div>
+<div class="line"><a name="l08084"></a><span class="lineno"> 8084</span>&#160;<span class="comment"> 1.08 Thatcher Ulrich&#39;s PSD code integrated by Nicolas Schulz</span></div>
+<div class="line"><a name="l08085"></a><span class="lineno"> 8085</span>&#160;<span class="comment"> 1.07 attempt to fix C++ warning/errors again</span></div>
+<div class="line"><a name="l08086"></a><span class="lineno"> 8086</span>&#160;<span class="comment"> 1.06 attempt to fix C++ warning/errors again</span></div>
+<div class="line"><a name="l08087"></a><span class="lineno"> 8087</span>&#160;<span class="comment"> 1.05 fix TGA loading to return correct *comp and use good luminance</span></div>
+<div class="line"><a name="l08088"></a><span class="lineno"> 8088</span>&#160;<span class="comment"> calc 1.04 default float alpha is 1, not 255; use &#39;void *&#39; for</span></div>
+<div class="line"><a name="l08089"></a><span class="lineno"> 8089</span>&#160;<span class="comment"> stbi_image_free 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR 1.02</span></div>
+<div class="line"><a name="l08090"></a><span class="lineno"> 8090</span>&#160;<span class="comment"> support for (subset of) HDR files, float interface for preferred access to</span></div>
+<div class="line"><a name="l08091"></a><span class="lineno"> 8091</span>&#160;<span class="comment"> them 1.01 fix bug: possible bug in handling right-side up bmps... not sure</span></div>
+<div class="line"><a name="l08092"></a><span class="lineno"> 8092</span>&#160;<span class="comment"> fix bug: the stbi__bmp_load() and stbi__tga_load() functions</span></div>
+<div class="line"><a name="l08093"></a><span class="lineno"> 8093</span>&#160;<span class="comment"> didn&#39;t work at all 1.00 interface to zlib that skips zlib header 0.99</span></div>
+<div class="line"><a name="l08094"></a><span class="lineno"> 8094</span>&#160;<span class="comment"> correct handling of alpha in palette 0.98 TGA loader by lonesock;</span></div>
+<div class="line"><a name="l08095"></a><span class="lineno"> 8095</span>&#160;<span class="comment"> dynamically add loaders (untested) 0.97 jpeg errors on too large a file;</span></div>
+<div class="line"><a name="l08096"></a><span class="lineno"> 8096</span>&#160;<span class="comment"> also catch another malloc failure 0.96 fix detection of invalid v value -</span></div>
+<div class="line"><a name="l08097"></a><span class="lineno"> 8097</span>&#160;<span class="comment"> particleman@mollyrocket forum 0.95 during header scan, seek to markers in</span></div>
+<div class="line"><a name="l08098"></a><span class="lineno"> 8098</span>&#160;<span class="comment"> case of padding 0.94 STBI_NO_STDIO to disable stdio usage; rename all</span></div>
+<div class="line"><a name="l08099"></a><span class="lineno"> 8099</span>&#160;<span class="comment"> #defines the same 0.93 handle jpegtran output; verbose errors 0.92 read</span></div>
+<div class="line"><a name="l08100"></a><span class="lineno"> 8100</span>&#160;<span class="comment"> 4,8,16,24,32-bit BMP files of several formats 0.91 output 24-bit</span></div>
+<div class="line"><a name="l08101"></a><span class="lineno"> 8101</span>&#160;<span class="comment"> Windows 3.0 BMP files 0.90 fix a few more warnings; bump version number to</span></div>
+<div class="line"><a name="l08102"></a><span class="lineno"> 8102</span>&#160;<span class="comment"> approach 1.0 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd 0.60</span></div>
+<div class="line"><a name="l08103"></a><span class="lineno"> 8103</span>&#160;<span class="comment"> fix compiling as c++ 0.59 fix warnings: merge Dave Moore&#39;s -Wall fixes</span></div>
+<div class="line"><a name="l08104"></a><span class="lineno"> 8104</span>&#160;<span class="comment"> 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian</span></div>
+<div class="line"><a name="l08105"></a><span class="lineno"> 8105</span>&#160;<span class="comment"> 0.57 fix bug: jpg last huffman symbol before marker was &gt;9 bits but</span></div>
+<div class="line"><a name="l08106"></a><span class="lineno"> 8106</span>&#160;<span class="comment"> less than 16 available 0.56 fix bug: zlib uncompressed mode len vs. nlen</span></div>
+<div class="line"><a name="l08107"></a><span class="lineno"> 8107</span>&#160;<span class="comment"> 0.55 fix bug: restart_interval not initialized to 0</span></div>
+<div class="line"><a name="l08108"></a><span class="lineno"> 8108</span>&#160;<span class="comment"> 0.54 allow NULL for &#39;int *comp&#39;</span></div>
+<div class="line"><a name="l08109"></a><span class="lineno"> 8109</span>&#160;<span class="comment"> 0.53 fix bug in png 3-&gt;4; speedup png decoding</span></div>
+<div class="line"><a name="l08110"></a><span class="lineno"> 8110</span>&#160;<span class="comment"> 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments</span></div>
+<div class="line"><a name="l08111"></a><span class="lineno"> 8111</span>&#160;<span class="comment"> 0.51 obey req_comp requests, 1-component jpegs return as 1-component,</span></div>
+<div class="line"><a name="l08112"></a><span class="lineno"> 8112</span>&#160;<span class="comment"> on &#39;test&#39; only check type, not whether we support this variant</span></div>
+<div class="line"><a name="l08113"></a><span class="lineno"> 8113</span>&#160;<span class="comment"> 0.50 (2006-11-19)</span></div>
+<div class="line"><a name="l08114"></a><span class="lineno"> 8114</span>&#160;<span class="comment"> first released version</span></div>
+<div class="line"><a name="l08115"></a><span class="lineno"> 8115</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l08116"></a><span class="lineno"> 8116</span>&#160;</div>
+<div class="line"><a name="l08117"></a><span class="lineno"> 8117</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l08118"></a><span class="lineno"> 8118</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l08119"></a><span class="lineno"> 8119</span>&#160;<span class="comment">This software is available under 2 licenses -- choose whichever you prefer.</span></div>
+<div class="line"><a name="l08120"></a><span class="lineno"> 8120</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l08121"></a><span class="lineno"> 8121</span>&#160;<span class="comment">ALTERNATIVE A - MIT License</span></div>
+<div class="line"><a name="l08122"></a><span class="lineno"> 8122</span>&#160;<span class="comment">Copyright (c) 2017 Sean Barrett</span></div>
+<div class="line"><a name="l08123"></a><span class="lineno"> 8123</span>&#160;<span class="comment">Permission is hereby granted, free of charge, to any person obtaining a copy of</span></div>
+<div class="line"><a name="l08124"></a><span class="lineno"> 8124</span>&#160;<span class="comment">this software and associated documentation files (the &quot;Software&quot;), to deal in</span></div>
+<div class="line"><a name="l08125"></a><span class="lineno"> 8125</span>&#160;<span class="comment">the Software without restriction, including without limitation the rights to</span></div>
+<div class="line"><a name="l08126"></a><span class="lineno"> 8126</span>&#160;<span class="comment">use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
+<div class="line"><a name="l08127"></a><span class="lineno"> 8127</span>&#160;<span class="comment">of the Software, and to permit persons to whom the Software is furnished to do</span></div>
+<div class="line"><a name="l08128"></a><span class="lineno"> 8128</span>&#160;<span class="comment">so, subject to the following conditions:</span></div>
+<div class="line"><a name="l08129"></a><span class="lineno"> 8129</span>&#160;<span class="comment">The above copyright notice and this permission notice shall be included in all</span></div>
+<div class="line"><a name="l08130"></a><span class="lineno"> 8130</span>&#160;<span class="comment">copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l08131"></a><span class="lineno"> 8131</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l08132"></a><span class="lineno"> 8132</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l08133"></a><span class="lineno"> 8133</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l08134"></a><span class="lineno"> 8134</span>&#160;<span class="comment">AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l08135"></a><span class="lineno"> 8135</span>&#160;<span class="comment">LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l08136"></a><span class="lineno"> 8136</span>&#160;<span class="comment">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
+<div class="line"><a name="l08137"></a><span class="lineno"> 8137</span>&#160;<span class="comment">SOFTWARE.</span></div>
+<div class="line"><a name="l08138"></a><span class="lineno"> 8138</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l08139"></a><span class="lineno"> 8139</span>&#160;<span class="comment">ALTERNATIVE B - Public Domain (www.unlicense.org)</span></div>
+<div class="line"><a name="l08140"></a><span class="lineno"> 8140</span>&#160;<span class="comment">This is free and unencumbered software released into the public domain.</span></div>
+<div class="line"><a name="l08141"></a><span class="lineno"> 8141</span>&#160;<span class="comment">Anyone is free to copy, modify, publish, use, compile, sell, or distribute this</span></div>
+<div class="line"><a name="l08142"></a><span class="lineno"> 8142</span>&#160;<span class="comment">software, either in source code form or as a compiled binary, for any purpose,</span></div>
+<div class="line"><a name="l08143"></a><span class="lineno"> 8143</span>&#160;<span class="comment">commercial or non-commercial, and by any means.</span></div>
+<div class="line"><a name="l08144"></a><span class="lineno"> 8144</span>&#160;<span class="comment">In jurisdictions that recognize copyright laws, the author or authors of this</span></div>
+<div class="line"><a name="l08145"></a><span class="lineno"> 8145</span>&#160;<span class="comment">software dedicate any and all copyright interest in the software to the public</span></div>
+<div class="line"><a name="l08146"></a><span class="lineno"> 8146</span>&#160;<span class="comment">domain. We make this dedication for the benefit of the public at large and to</span></div>
+<div class="line"><a name="l08147"></a><span class="lineno"> 8147</span>&#160;<span class="comment">the detriment of our heirs and successors. We intend this dedication to be an</span></div>
+<div class="line"><a name="l08148"></a><span class="lineno"> 8148</span>&#160;<span class="comment">overt act of relinquishment in perpetuity of all present and future rights to</span></div>
+<div class="line"><a name="l08149"></a><span class="lineno"> 8149</span>&#160;<span class="comment">this software under copyright law.</span></div>
+<div class="line"><a name="l08150"></a><span class="lineno"> 8150</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l08151"></a><span class="lineno"> 8151</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l08152"></a><span class="lineno"> 8152</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l08153"></a><span class="lineno"> 8153</span>&#160;<span class="comment">AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
+<div class="line"><a name="l08154"></a><span class="lineno"> 8154</span>&#160;<span class="comment">ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span></div>
+<div class="line"><a name="l08155"></a><span class="lineno"> 8155</span>&#160;<span class="comment">WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></div>
+<div class="line"><a name="l08156"></a><span class="lineno"> 8156</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l08157"></a><span class="lineno"> 8157</span>&#160;<span class="comment">*/</span></div>
<div class="ttc" id="stb__image_8h_html_a2d9ec9850cd12aefe7641b456266a4c2"><div class="ttname"><a href="stb__image_8h.html#a2d9ec9850cd12aefe7641b456266a4c2">STBIDEF</a></div><div class="ttdeci">#define STBIDEF</div><div class="ttdef"><b>Definition:</b> stb_image.h:330</div></div>
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822ad20caec3b48a1eef164cb4ca81ba2587">yage::key::L</a></div></div>
<div class="ttc" id="stb__image_8h_html_acfef077febce3bc3f1f339de478f3315"><div class="ttname"><a href="stb__image_8h.html#acfef077febce3bc3f1f339de478f3315">stbi_info_from_memory</a></div><div class="ttdeci">STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)</div></div>
@@ -7333,15 +8287,11 @@ $(document).ready(function(){initNavTree('stb__image_8h_source.html','');});
<div class="ttc" id="stb__image_8h_html_a23525ef2b882f3de426b47ecf8d9151b"><div class="ttname"><a href="stb__image_8h.html#a23525ef2b882f3de426b47ecf8d9151b">stbi_convert_iphone_png_to_rgb</a></div><div class="ttdeci">STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert)</div></div>
<div class="ttc" id="stb__image_8h_html_aaaa17a529bec51403cc23dc2e7c36d79"><div class="ttname"><a href="stb__image_8h.html#aaaa17a529bec51403cc23dc2e7c36d79">stbi_zlib_decode_malloc_guesssize</a></div><div class="ttdeci">STBIDEF char * stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen)</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="stb__image_8h.html">stb_image.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structstbi__io__callbacks-members.html b/structstbi__io__callbacks-members.html
index a07671f6..7e214b15 100644
--- a/structstbi__io__callbacks-members.html
+++ b/structstbi__io__callbacks-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structstbi__io__callbacks.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,7 @@ $(document).ready(function(){initNavTree('structstbi__io__callbacks.html','');})
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">stbi_io_callbacks Member List</div> </div>
@@ -117,14 +97,11 @@ $(document).ready(function(){initNavTree('structstbi__io__callbacks.html','');})
<tr><td class="entry"><a class="el" href="structstbi__io__callbacks.html#a73818f0a4f467e5abfefb1d635f62d82">read</a></td><td class="entry"><a class="el" href="structstbi__io__callbacks.html">stbi_io_callbacks</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83">skip</a></td><td class="entry"><a class="el" href="structstbi__io__callbacks.html">stbi_io_callbacks</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structstbi__io__callbacks.html b/structstbi__io__callbacks.html
index a5e6f7f4..b7256eba 100644
--- a/structstbi__io__callbacks.html
+++ b/structstbi__io__callbacks.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structstbi__io__callbacks.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,7 @@ $(document).ready(function(){initNavTree('structstbi__io__callbacks.html','');})
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
@@ -166,15 +146,11 @@ Public Attributes</h2></td></tr>
<li>yage/core/<a class="el" href="stb__image_8h_source.html">stb_image.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="structstbi__io__callbacks.html">stbi_io_callbacks</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structstbi__io__callbacks.js b/structstbi__io__callbacks.js
deleted file mode 100644
index 67604146..00000000
--- a/structstbi__io__callbacks.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var structstbi__io__callbacks =
-[
- [ "eof", "structstbi__io__callbacks.html#a2c4f3c3b7c75a2e74a35caf74fb8d177", null ],
- [ "read", "structstbi__io__callbacks.html#a73818f0a4f467e5abfefb1d635f62d82", null ],
- [ "skip", "structstbi__io__callbacks.html#a864be557872041ac06e1509caf05cc83", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1Colour-members.html b/structyage_1_1Colour-members.html
index 9cb2d796..d84d2eac 100644
--- a/structyage_1_1Colour-members.html
+++ b/structyage_1_1Colour-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Colour.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Colour.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Colour.html">Colour</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Colour Member List</div> </div>
@@ -120,14 +104,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Colour.html','');});
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1Colour.html#a205d3a63268f4879adf27aabdf71a6dd">g</a></td><td class="entry"><a class="el" href="structyage_1_1Colour.html">yage::Colour</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1Colour.html#a572fe7933c59ebfa6720088cd33dad99">r</a></td><td class="entry"><a class="el" href="structyage_1_1Colour.html">yage::Colour</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Colour.html b/structyage_1_1Colour.html
index 658afc93..8baea207 100644
--- a/structyage_1_1Colour.html
+++ b/structyage_1_1Colour.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Colour.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Colour.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Colour.html">Colour</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -258,15 +242,11 @@ Public Attributes</h2></td></tr>
<li>yage/data/<a class="el" href="vertex_8h_source.html">vertex.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Colour.html">Colour</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Colour.js b/structyage_1_1Colour.js
deleted file mode 100644
index fc306acd..00000000
--- a/structyage_1_1Colour.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var structyage_1_1Colour =
-[
- [ "Colour", "structyage_1_1Colour.html#a585165d5109c81b6b2de6f1116406abd", null ],
- [ "Colour", "structyage_1_1Colour.html#a8118ad802db7e61df770f7d3b5b88aaa", null ],
- [ "a", "structyage_1_1Colour.html#a5aef37a5ac37e44dc32f5f9b1ebee10c", null ],
- [ "b", "structyage_1_1Colour.html#a7bd3ed4a377c384af80aa8c7f55dc96f", null ],
- [ "g", "structyage_1_1Colour.html#a205d3a63268f4879adf27aabdf71a6dd", null ],
- [ "r", "structyage_1_1Colour.html#a572fe7933c59ebfa6720088cd33dad99", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1LogMessage_1_1Meta-members.html b/structyage_1_1LogMessage_1_1Meta-members.html
index 62970f99..bf9ceaee 100644
--- a/structyage_1_1LogMessage_1_1Meta-members.html
+++ b/structyage_1_1LogMessage_1_1Meta-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1LogMessage_1_1Meta.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1LogMessage_1_1Meta.html'
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li><li class="navelem"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">Meta</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::LogMessage::Meta Member List</div> </div>
@@ -117,14 +101,11 @@ $(document).ready(function(){initNavTree('structyage_1_1LogMessage_1_1Meta.html'
<tr><td class="entry"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html#aa265c76e7ce54e4b912e1c41333fad3b">level</a></td><td class="entry"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">yage::LogMessage::Meta</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html#ac2951995b1f4ebf28e94bcd268c3dd3c">line</a></td><td class="entry"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">yage::LogMessage::Meta</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1LogMessage_1_1Meta.html b/structyage_1_1LogMessage_1_1Meta.html
index 5a84c551..8002c06c 100644
--- a/structyage_1_1LogMessage_1_1Meta.html
+++ b/structyage_1_1LogMessage_1_1Meta.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1LogMessage_1_1Meta.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1LogMessage_1_1Meta.html'
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li><li class="navelem"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">Meta</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
@@ -166,15 +150,11 @@ Public Attributes</h2></td></tr>
<li>yage/core/<a class="el" href="logmessage_8h_source.html">logmessage.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="classyage_1_1LogMessage.html">LogMessage</a></li><li class="navelem"><a class="el" href="structyage_1_1LogMessage_1_1Meta.html">Meta</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1LogMessage_1_1Meta.js b/structyage_1_1LogMessage_1_1Meta.js
deleted file mode 100644
index 466e08bf..00000000
--- a/structyage_1_1LogMessage_1_1Meta.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var structyage_1_1LogMessage_1_1Meta =
-[
- [ "fileName", "structyage_1_1LogMessage_1_1Meta.html#ae3ef1b01f47ef6254b8aa6fce13db7c4", null ],
- [ "level", "structyage_1_1LogMessage_1_1Meta.html#aa265c76e7ce54e4b912e1c41333fad3b", null ],
- [ "line", "structyage_1_1LogMessage_1_1Meta.html#ac2951995b1f4ebf28e94bcd268c3dd3c", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1Position-members.html b/structyage_1_1Position-members.html
index 8ffbfbad..a181e0cb 100644
--- a/structyage_1_1Position-members.html
+++ b/structyage_1_1Position-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Position.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Position.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Position.html">Position</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Position Member List</div> </div>
@@ -118,14 +102,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Position.html','');});
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1Position.html#a4f5904d6d7b22802211f0565bc9f6c91">x</a></td><td class="entry"><a class="el" href="structyage_1_1Position.html">yage::Position</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1Position.html#a45b8cc8245d0e05bb9e482d85512ee27">y</a></td><td class="entry"><a class="el" href="structyage_1_1Position.html">yage::Position</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Position.html b/structyage_1_1Position.html
index bc28e553..008efdb9 100644
--- a/structyage_1_1Position.html
+++ b/structyage_1_1Position.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Position.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Position.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Position.html">Position</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -218,15 +202,11 @@ Public Attributes</h2></td></tr>
<li>yage/data/<a class="el" href="vertex_8h_source.html">vertex.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Position.html">Position</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Position.js b/structyage_1_1Position.js
deleted file mode 100644
index 1b25a716..00000000
--- a/structyage_1_1Position.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var structyage_1_1Position =
-[
- [ "Position", "structyage_1_1Position.html#a41b1d5ee23c50208982ab6089708e5d2", null ],
- [ "Position", "structyage_1_1Position.html#aaeaa1cd93e57adcb08ef4f76513148e2", null ],
- [ "x", "structyage_1_1Position.html#a4f5904d6d7b22802211f0565bc9f6c91", null ],
- [ "y", "structyage_1_1Position.html#a45b8cc8245d0e05bb9e482d85512ee27", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1Texture-members.html b/structyage_1_1Texture-members.html
index 8aebade9..85b8e337 100644
--- a/structyage_1_1Texture-members.html
+++ b/structyage_1_1Texture-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Texture.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Texture.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Texture.html">Texture</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Texture Member List</div> </div>
@@ -121,14 +105,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Texture.html','');});
<tr><td class="entry"><a class="el" href="structyage_1_1Texture.html#a7ecf257a7663cb0523d41c0519380046">x</a></td><td class="entry"><a class="el" href="structyage_1_1Texture.html">yage::Texture</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1Texture.html#a4bfae86da1ef1930238291660223a8f0">y</a></td><td class="entry"><a class="el" href="structyage_1_1Texture.html">yage::Texture</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Texture.html b/structyage_1_1Texture.html
index 38ba6d56..a09c8cce 100644
--- a/structyage_1_1Texture.html
+++ b/structyage_1_1Texture.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Texture.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Texture.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Texture.html">Texture</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -278,15 +262,11 @@ Public Attributes</h2></td></tr>
<li>yage/data/<a class="el" href="texture_8h_source.html">texture.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Texture.html">Texture</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Texture.js b/structyage_1_1Texture.js
deleted file mode 100644
index cf8f3ae1..00000000
--- a/structyage_1_1Texture.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var structyage_1_1Texture =
-[
- [ "Texture", "structyage_1_1Texture.html#a0cef080bceaaf5e702985f5494ea35d5", null ],
- [ "Texture", "structyage_1_1Texture.html#af0a85aa4202d12fca9c1f52085d26850", null ],
- [ "height", "structyage_1_1Texture.html#a5ce16ac8ad034f7042620a418783b41e", null ],
- [ "id", "structyage_1_1Texture.html#a26386c2709b906ec07c9a1bb8daf2968", null ],
- [ "width", "structyage_1_1Texture.html#ad42f41cc57ed7a20928382f6557dc598", null ],
- [ "x", "structyage_1_1Texture.html#a7ecf257a7663cb0523d41c0519380046", null ],
- [ "y", "structyage_1_1Texture.html#a4bfae86da1ef1930238291660223a8f0", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1UV-members.html b/structyage_1_1UV-members.html
index 37d394dc..547b9cb7 100644
--- a/structyage_1_1UV-members.html
+++ b/structyage_1_1UV-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1UV.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1UV.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1UV.html">UV</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::UV Member List</div> </div>
@@ -118,14 +102,11 @@ $(document).ready(function(){initNavTree('structyage_1_1UV.html','');});
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1UV.html#ac918524789292937aae5803df3c2673f">UV</a>(float u_, float v_)</td><td class="entry"><a class="el" href="structyage_1_1UV.html">yage::UV</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1UV.html#a414dc7aeeebf47df1a991aacbb12a793">v</a></td><td class="entry"><a class="el" href="structyage_1_1UV.html">yage::UV</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1UV.html b/structyage_1_1UV.html
index a52e3370..a0fede42 100644
--- a/structyage_1_1UV.html
+++ b/structyage_1_1UV.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1UV.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1UV.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1UV.html">UV</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -218,15 +202,11 @@ Public Attributes</h2></td></tr>
<li>yage/data/<a class="el" href="vertex_8h_source.html">vertex.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1UV.html">UV</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1UV.js b/structyage_1_1UV.js
deleted file mode 100644
index e59172db..00000000
--- a/structyage_1_1UV.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var structyage_1_1UV =
-[
- [ "UV", "structyage_1_1UV.html#ae236139f3a5f6024aac1e21bd93b7bde", null ],
- [ "UV", "structyage_1_1UV.html#ac918524789292937aae5803df3c2673f", null ],
- [ "u", "structyage_1_1UV.html#aa726c11ba59a9a5edffef27ac3845053", null ],
- [ "v", "structyage_1_1UV.html#a414dc7aeeebf47df1a991aacbb12a793", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1Vertex-members.html b/structyage_1_1Vertex-members.html
index 161ed75b..2df0bd7f 100644
--- a/structyage_1_1Vertex-members.html
+++ b/structyage_1_1Vertex-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Vertex.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Vertex.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Vertex.html">Vertex</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::Vertex Member List</div> </div>
@@ -122,14 +106,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Vertex.html','');});
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1Vertex.html#acae9697c2762e37dfa4472b85fa112c3">Vertex</a>()=default</td><td class="entry"><a class="el" href="structyage_1_1Vertex.html">yage::Vertex</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1Vertex.html#aac3046359c44aeabc910a81f4f41789e">Vertex</a>(const Position &amp;position_, const Colour &amp;colour_, const UV &amp;uv_)</td><td class="entry"><a class="el" href="structyage_1_1Vertex.html">yage::Vertex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Vertex.html b/structyage_1_1Vertex.html
index a2d3bbe2..4d7ae694 100644
--- a/structyage_1_1Vertex.html
+++ b/structyage_1_1Vertex.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1Vertex.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1Vertex.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Vertex.html">Vertex</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -359,15 +343,11 @@ Public Attributes</h2></td></tr>
<li>yage/data/<a class="el" href="vertex_8h_source.html">vertex.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="structyage_1_1Vertex.html">Vertex</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1Vertex.js b/structyage_1_1Vertex.js
deleted file mode 100644
index 3ff142ac..00000000
--- a/structyage_1_1Vertex.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var structyage_1_1Vertex =
-[
- [ "Vertex", "structyage_1_1Vertex.html#acae9697c2762e37dfa4472b85fa112c3", null ],
- [ "Vertex", "structyage_1_1Vertex.html#aac3046359c44aeabc910a81f4f41789e", null ],
- [ "setColour", "structyage_1_1Vertex.html#aa759435739e34e2a0bfd1803c2aeeddf", null ],
- [ "setPosition", "structyage_1_1Vertex.html#af392248f0be173221ebcc62d490fe03d", null ],
- [ "setUv", "structyage_1_1Vertex.html#aa1fa8f5ebd883068828466cc924d4c50", null ],
- [ "colour", "structyage_1_1Vertex.html#a142db28be39f418a06fa43f75d386182", null ],
- [ "position", "structyage_1_1Vertex.html#abefe88d26b055655f9cc038a1dd4ff6a", null ],
- [ "uv", "structyage_1_1Vertex.html#a2d1923353f0e50e7753ff1ae2d9ba84e", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1details_1_1Coordinate-members.html b/structyage_1_1details_1_1Coordinate-members.html
index 9e40b659..559e162a 100644
--- a/structyage_1_1details_1_1Coordinate-members.html
+++ b/structyage_1_1details_1_1Coordinate-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1Coordinate.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Coordinate.ht
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Coordinate.html">Coordinate</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::details::Coordinate Member List</div> </div>
@@ -120,14 +104,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Coordinate.ht
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1details_1_1Coordinate.html#aa1a9203c0a9cd929f333bd99af634adc">x</a></td><td class="entry"><a class="el" href="structyage_1_1details_1_1Coordinate.html">yage::details::Coordinate</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1details_1_1Coordinate.html#a6d54c056ec7bd3c7ed1c6a226c2cf508">y</a></td><td class="entry"><a class="el" href="structyage_1_1details_1_1Coordinate.html">yage::details::Coordinate</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1Coordinate.html b/structyage_1_1details_1_1Coordinate.html
index b46824ea..5367a38f 100644
--- a/structyage_1_1details_1_1Coordinate.html
+++ b/structyage_1_1details_1_1Coordinate.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1Coordinate.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Coordinate.ht
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Coordinate.html">Coordinate</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -258,15 +242,11 @@ Public Attributes</h2></td></tr>
<li>yage/core/<a class="el" href="spritesheet_8h_source.html">spritesheet.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Coordinate.html">Coordinate</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1Coordinate.js b/structyage_1_1details_1_1Coordinate.js
deleted file mode 100644
index ab984b7b..00000000
--- a/structyage_1_1details_1_1Coordinate.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var structyage_1_1details_1_1Coordinate =
-[
- [ "Coordinate", "structyage_1_1details_1_1Coordinate.html#a0b3a6d9aa1d5b846ad7ebc11bc77c629", null ],
- [ "Coordinate", "structyage_1_1details_1_1Coordinate.html#a43fb6bd3e325d5cd7ec436778605db2a", null ],
- [ "height", "structyage_1_1details_1_1Coordinate.html#a23585afbdaa9bb742353a4c90878a941", null ],
- [ "width", "structyage_1_1details_1_1Coordinate.html#aed145c923c95f852a8fb3abde8e346c0", null ],
- [ "x", "structyage_1_1details_1_1Coordinate.html#aa1a9203c0a9cd929f333bd99af634adc", null ],
- [ "y", "structyage_1_1details_1_1Coordinate.html#a6d54c056ec7bd3c7ed1c6a226c2cf508", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1details_1_1Glyph-members.html b/structyage_1_1details_1_1Glyph-members.html
index 70df2097..e395d31d 100644
--- a/structyage_1_1details_1_1Glyph-members.html
+++ b/structyage_1_1details_1_1Glyph-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1Glyph.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Glyph.html','
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Glyph.html">Glyph</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::details::Glyph Member List</div> </div>
@@ -121,14 +105,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Glyph.html','
<tr><td class="entry"><a class="el" href="structyage_1_1details_1_1Glyph.html#a4dd2989e7b2a6d58dea6c85a9a1ed80d">top_left</a></td><td class="entry"><a class="el" href="structyage_1_1details_1_1Glyph.html">yage::details::Glyph</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1details_1_1Glyph.html#a503ba9786cf0fe3535e968b607a001da">top_right</a></td><td class="entry"><a class="el" href="structyage_1_1details_1_1Glyph.html">yage::details::Glyph</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1Glyph.html b/structyage_1_1details_1_1Glyph.html
index f88546bc..293e32f9 100644
--- a/structyage_1_1details_1_1Glyph.html
+++ b/structyage_1_1details_1_1Glyph.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1Glyph.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1Glyph.html','
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Glyph.html">Glyph</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -278,15 +262,11 @@ Public Attributes</h2></td></tr>
<li>yage/render/<a class="el" href="spritebatch_8h_source.html">spritebatch.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1Glyph.html">Glyph</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1Glyph.js b/structyage_1_1details_1_1Glyph.js
deleted file mode 100644
index 2a5ef54c..00000000
--- a/structyage_1_1details_1_1Glyph.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var structyage_1_1details_1_1Glyph =
-[
- [ "Glyph", "structyage_1_1details_1_1Glyph.html#a91752b58fc10fb037658f27c9338627c", null ],
- [ "bottom_left", "structyage_1_1details_1_1Glyph.html#ac42b2ed4a9179c38196953ed32bfa056", null ],
- [ "bottom_right", "structyage_1_1details_1_1Glyph.html#a9de1d469f98aa0411f8073fdc3aa39ed", null ],
- [ "depth", "structyage_1_1details_1_1Glyph.html#ae5398583bd0b4c1d6b334bf3902903d9", null ],
- [ "texture", "structyage_1_1details_1_1Glyph.html#aba58f02d34ba363ab3435e2328e4bfcc", null ],
- [ "top_left", "structyage_1_1details_1_1Glyph.html#a4dd2989e7b2a6d58dea6c85a9a1ed80d", null ],
- [ "top_right", "structyage_1_1details_1_1Glyph.html#a503ba9786cf0fe3535e968b607a001da", null ]
-]; \ No newline at end of file
diff --git a/structyage_1_1details_1_1RenderBatch-members.html b/structyage_1_1details_1_1RenderBatch-members.html
index dd213480..e8c2c012 100644
--- a/structyage_1_1details_1_1RenderBatch-members.html
+++ b/structyage_1_1details_1_1RenderBatch-members.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1RenderBatch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1RenderBatch.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">RenderBatch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage::details::RenderBatch Member List</div> </div>
@@ -118,14 +102,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1RenderBatch.h
<tr class="even"><td class="entry"><a class="el" href="structyage_1_1details_1_1RenderBatch.html#a48f630fdb7c1a3f4eecd05996b560844">RenderBatch</a>(GLint offset_i, GLsizei num_vertices_i, GLuint texture_i)</td><td class="entry"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">yage::details::RenderBatch</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="structyage_1_1details_1_1RenderBatch.html#abf26b15420f34052270a1204d89ee687">texture</a></td><td class="entry"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">yage::details::RenderBatch</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1RenderBatch.html b/structyage_1_1details_1_1RenderBatch.html
index d8eabfdc..ef956d84 100644
--- a/structyage_1_1details_1_1RenderBatch.html
+++ b/structyage_1_1details_1_1RenderBatch.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -76,21 +70,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('structyage_1_1details_1_1RenderBatch.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -105,6 +84,11 @@ $(document).ready(function(){initNavTree('structyage_1_1details_1_1RenderBatch.h
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">RenderBatch</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
@@ -213,15 +197,11 @@ Public Attributes</h2></td></tr>
<li>yage/render/<a class="el" href="spritebatch_8h_source.html">spritebatch.h</a></li>
</ul>
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="namespaceyage.html">yage</a></li><li class="navelem"><a class="el" href="namespaceyage_1_1details.html">details</a></li><li class="navelem"><a class="el" href="structyage_1_1details_1_1RenderBatch.html">RenderBatch</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/structyage_1_1details_1_1RenderBatch.js b/structyage_1_1details_1_1RenderBatch.js
deleted file mode 100644
index 797fe5b8..00000000
--- a/structyage_1_1details_1_1RenderBatch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var structyage_1_1details_1_1RenderBatch =
-[
- [ "RenderBatch", "structyage_1_1details_1_1RenderBatch.html#a48f630fdb7c1a3f4eecd05996b560844", null ],
- [ "num_vertices", "structyage_1_1details_1_1RenderBatch.html#a27ed6f3911a6d7c8c2b6b4e5a5889b29", null ],
- [ "offset", "structyage_1_1details_1_1RenderBatch.html#a7f58b6967f0a68aa5624e0504c78a422", null ],
- [ "texture", "structyage_1_1details_1_1RenderBatch.html#abf26b15420f34052270a1204d89ee687", null ]
-]; \ No newline at end of file
diff --git a/sync_off.png b/sync_off.png
index 3b443fc6..b255e87b 100644
--- a/sync_off.png
+++ b/sync_off.png
Binary files differ
diff --git a/sync_on.png b/sync_on.png
index e08320fb..ff9d7d4a 100644
--- a/sync_on.png
+++ b/sync_on.png
Binary files differ
diff --git a/syncqueue_8h.html b/syncqueue_8h.html
index 9aaeaf60..d85c0777 100644
--- a/syncqueue_8h.html
+++ b/syncqueue_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('syncqueue_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('syncqueue_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -129,7 +113,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -137,15 +121,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li><li class="navelem"><a class="el" href="syncqueue_8h.html">syncqueue.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/syncqueue_8h_source.html b/syncqueue_8h_source.html
index 7759e39f..30764da8 100644
--- a/syncqueue_8h_source.html
+++ b/syncqueue_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('syncqueue_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('syncqueue_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">syncqueue.h</div> </div>
@@ -197,15 +181,11 @@ $(document).ready(function(){initNavTree('syncqueue_8h_source.html','');});
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822ab9ece18c950afbfa6b0fdbfa4ff731d3">yage::key::T</a></div></div>
<div class="ttc" id="classyage_1_1SyncQueue_html"><div class="ttname"><a href="classyage_1_1SyncQueue.html">yage::SyncQueue</a></div><div class="ttdef"><b>Definition:</b> syncqueue.h:20</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_48a91ae829881cbedcfc124d2027890d.html">util</a></li><li class="navelem"><a class="el" href="syncqueue_8h.html">syncqueue.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/system_8h.html b/system_8h.html
new file mode 100644
index 00000000..e40eb333
--- /dev/null
+++ b/system_8h.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/system.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">system.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><hr/>
+
+<a href="#details">More...</a></p>
+
+<p><a href="system_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classyage_1_1System.html">yage::System</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classyage_1_1System.html" title="System interface for the different systems in the engine. ">System</a> interface for the different systems in the engine. <a href="classyage_1_1System.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><hr/>
+ <p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
+<h2>MIT License, see LICENSE file for more details. </h2>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/system_8h_source.html b/system_8h_source.html
new file mode 100644
index 00000000..500a888d
--- /dev/null
+++ b/system_8h_source.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: yage/engine/system.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_4360c3054e876104aec8d81523b584e2.html">engine</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">system.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="system_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_ENGINE_SYSTEM_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_ENGINE_SYSTEM_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classyage_1_1System.html"> 18</a></span>&#160;<span class="keyword">class </span><a class="code" href="classyage_1_1System.html">System</a></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">~System</a>() = 0;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">init</a>() = 0;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">update</a>(<span class="keywordtype">double</span> dt) = 0;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57"> 48</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">System::~System</a>() {}</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="classyage_1_1System_html"><div class="ttname"><a href="classyage_1_1System.html">yage::System</a></div><div class="ttdoc">System interface for the different systems in the engine. </div><div class="ttdef"><b>Definition:</b> system.h:18</div></div>
+<div class="ttc" id="classyage_1_1System_html_ad697e043fcf7dbcf77821f49073f5af9"><div class="ttname"><a href="classyage_1_1System.html#ad697e043fcf7dbcf77821f49073f5af9">yage::System::init</a></div><div class="ttdeci">virtual void init()=0</div><div class="ttdoc">Initializes the system. </div></div>
+<div class="ttc" id="classyage_1_1System_html_a32e00cf7f9b517a43e7db16d2aaa9b57"><div class="ttname"><a href="classyage_1_1System.html#a32e00cf7f9b517a43e7db16d2aaa9b57">yage::System::~System</a></div><div class="ttdeci">virtual ~System()=0</div><div class="ttdoc">Virtual destructor to destroy all the objects that implement this properly. </div><div class="ttdef"><b>Definition:</b> system.h:48</div></div>
+<div class="ttc" id="classyage_1_1System_html_a882cfa13fc76d106c9d0ca68b17ff1ff"><div class="ttname"><a href="classyage_1_1System.html#a882cfa13fc76d106c9d0ca68b17ff1ff">yage::System::update</a></div><div class="ttdeci">virtual void update(double dt)=0</div><div class="ttdoc">Updates the system at each interval using the time step. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/tab_a.png b/tab_a.png
index 3b725c41..bae36fc2 100644
--- a/tab_a.png
+++ b/tab_a.png
Binary files differ
diff --git a/tab_b.png b/tab_b.png
index e2b4a863..2851c408 100644
--- a/tab_b.png
+++ b/tab_b.png
Binary files differ
diff --git a/tab_h.png b/tab_h.png
index fd5cb705..afe5ff53 100644
--- a/tab_h.png
+++ b/tab_h.png
Binary files differ
diff --git a/tab_s.png b/tab_s.png
index ab478c95..606bca4b 100644
--- a/tab_s.png
+++ b/tab_s.png
Binary files differ
diff --git a/tabs.css b/tabs.css
index 9cf578f2..79cde398 100644
--- a/tabs.css
+++ b/tabs.css
@@ -34,7 +34,7 @@
background-image:url('tab_s.png');
background-repeat:no-repeat;
background-position:right;
- color: #283A5D;
+ color: #77280E;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
outline: none;
diff --git a/texture_8h.html b/texture_8h.html
index cde517c9..bb82e02b 100644
--- a/texture_8h.html
+++ b/texture_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('texture_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('texture_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -127,7 +111,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,15 +119,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="texture_8h.html">texture.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/texture_8h_source.html b/texture_8h_source.html
index 1e7452d2..081da26b 100644
--- a/texture_8h_source.html
+++ b/texture_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('texture_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('texture_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">texture.h</div> </div>
@@ -144,15 +128,11 @@ $(document).ready(function(){initNavTree('texture_8h_source.html','');});
<div class="ttc" id="structyage_1_1Texture_html_a0cef080bceaaf5e702985f5494ea35d5"><div class="ttname"><a href="structyage_1_1Texture.html#a0cef080bceaaf5e702985f5494ea35d5">yage::Texture::Texture</a></div><div class="ttdeci">Texture()</div><div class="ttdef"><b>Definition:</b> texture.h:24</div></div>
<div class="ttc" id="structyage_1_1Texture_html_a26386c2709b906ec07c9a1bb8daf2968"><div class="ttname"><a href="structyage_1_1Texture.html#a26386c2709b906ec07c9a1bb8daf2968">yage::Texture::id</a></div><div class="ttdeci">GLuint id</div><div class="ttdef"><b>Definition:</b> texture.h:18</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="texture_8h.html">texture.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/texturecache_8cpp.html b/texturecache_8cpp.html
index f8693123..4a430762 100644
--- a/texturecache_8cpp.html
+++ b/texturecache_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('texturecache_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('texturecache_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -121,7 +105,7 @@ $(document).ready(function(){initNavTree('texturecache_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -129,15 +113,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="texturecache_8cpp.html">texturecache.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/texturecache_8h.html b/texturecache_8h.html
index 4d3d1bfd..51b56527 100644
--- a/texturecache_8h.html
+++ b/texturecache_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('texturecache_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('texturecache_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -136,15 +120,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="texturecache_8h.html">texturecache.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/texturecache_8h_source.html b/texturecache_8h_source.html
index d1463e6a..78d723a8 100644
--- a/texturecache_8h_source.html
+++ b/texturecache_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('texturecache_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('texturecache_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">texturecache.h</div> </div>
@@ -140,15 +124,11 @@ $(document).ready(function(){initNavTree('texturecache_8h_source.html','');});
<div class="ttc" id="classyage_1_1TextureCache_html"><div class="ttname"><a href="classyage_1_1TextureCache.html">yage::TextureCache</a></div><div class="ttdef"><b>Definition:</b> texturecache.h:19</div></div>
<div class="ttc" id="classyage_1_1TextureCache_html_ad4929640230f9a74fcd634416fe0974f"><div class="ttname"><a href="classyage_1_1TextureCache.html#ad4929640230f9a74fcd634416fe0974f">yage::TextureCache::getTexture</a></div><div class="ttdeci">Texture getTexture(const std::string &amp;texture_path, int x=1, int y=1)</div><div class="ttdef"><b>Definition:</b> texturecache.cpp:16</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="texturecache_8h.html">texturecache.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/todo.html b/todo.html
index 3f39f69f..db247e76 100644
--- a/todo.html
+++ b/todo.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -68,21 +62,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('todo.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -97,30 +76,28 @@ $(document).ready(function(){initNavTree('todo.html','');});
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Todo List </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
-<dt><a class="anchor" id="_todo000004"></a>Namespace <a class="el" href="namespaceyage.html">yage</a> </dt>
+<dt><a class="anchor" id="_todo000002"></a>Namespace <a class="el" href="namespaceyage.html">yage</a> </dt>
<dd><p class="startdd">remove the include to make compilation faster </p>
<p class="enddd">think of removing this, by, for example, using a pointer This could be more efficient when copying the texture out of the spritesheet. </p>
</dd>
-<dt><a class="anchor" id="_todo000003"></a>Member <a class="el" href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">yage::Camera::update</a> (Shader &amp;program)</dt>
+<dt><a class="anchor" id="_todo000001"></a>Member <a class="el" href="classyage_1_1Camera.html#a99f0af50db990c5558fd0b7b82f3978c">yage::Camera::update</a> (Shader &amp;program)</dt>
<dd>Make this function more general to be able to be able to use any parametre in then shader as the camera matrix and not make it dependent on it being <code>P</code>. </dd>
-<dt><a class="anchor" id="_todo000006"></a>Member <a class="el" href="namespaceyage_1_1matrix.html#a277125ad9fa06a7119c59d350e129985">yage::matrix::multiply</a> (const Matrix&lt; M, N, T &gt; &amp;m1, const Matrix&lt; P, Q, T &gt; &amp;m2)</dt>
+<dt><a class="anchor" id="_todo000004"></a>Member <a class="el" href="namespaceyage_1_1matrix.html#a277125ad9fa06a7119c59d350e129985">yage::matrix::multiply</a> (const Matrix&lt; M, N, T &gt; &amp;m1, const Matrix&lt; P, Q, T &gt; &amp;m2)</dt>
<dd>Think if this should be a static_assert. </dd>
</dl>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/todolist_8md.html b/todolist_8md.html
new file mode 100644
index 00000000..a9f6d8d8
--- /dev/null
+++ b/todolist_8md.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>YAGE: docs/todolist.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAGE
+ &#160;<span id="projectnumber">v0.1.4.0</span>
+ </div>
+ <div id="projectbrief">Yet Another Game Engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">docs/todolist.md File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/vertex_8h.html b/vertex_8h.html
index ee83e802..e6fcfeb9 100644
--- a/vertex_8h.html
+++ b/vertex_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('vertex_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('vertex_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -133,7 +117,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -141,15 +125,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="vertex_8h.html">vertex.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/vertex_8h_source.html b/vertex_8h_source.html
index 3fa1904e..a326e740 100644
--- a/vertex_8h_source.html
+++ b/vertex_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('vertex_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('vertex_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">vertex.h</div> </div>
@@ -212,15 +196,11 @@ $(document).ready(function(){initNavTree('vertex_8h_source.html','');});
<div class="ttc" id="structyage_1_1Vertex_html_a142db28be39f418a06fa43f75d386182"><div class="ttname"><a href="structyage_1_1Vertex.html#a142db28be39f418a06fa43f75d386182">yage::Vertex::colour</a></div><div class="ttdeci">Colour colour</div><div class="ttdef"><b>Definition:</b> vertex.h:51</div></div>
<div class="ttc" id="structyage_1_1UV_html_aa726c11ba59a9a5edffef27ac3845053"><div class="ttname"><a href="structyage_1_1UV.html#aa726c11ba59a9a5edffef27ac3845053">yage::UV::u</a></div><div class="ttdeci">float u</div><div class="ttdef"><b>Definition:</b> vertex.h:41</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_d09e80fdcf0bb585bbe3b7099c52d028.html">data</a></li><li class="navelem"><a class="el" href="vertex_8h.html">vertex.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/window_8cpp.html b/window_8cpp.html
index 9018c289..d797f911 100644
--- a/window_8cpp.html
+++ b/window_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('window_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('window_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
@@ -116,14 +100,14 @@ $(document).ready(function(){initNavTree('window_8cpp.html','');});
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="window_8h_source.html">window.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="input_8h_source.html">../data/input.h</a>&quot;</code><br/>
-<code>#include &lt;glad/glad.h&gt;</code><br/>
<code>#include &lt;GLFW/glfw3.h&gt;</code><br/>
+<code>#include &lt;glad/glad.h&gt;</code><br/>
<code>#include &lt;stdexcept&gt;</code><br/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -131,15 +115,11 @@ Namespaces</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="window_8cpp.html">window.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/window_8h.html b/window_8h.html
index 30257f5c..aa98c157 100644
--- a/window_8h.html
+++ b/window_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('window_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('window_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
@@ -128,7 +112,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
@@ -145,15 +129,11 @@ Enumerations</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="window_8h.html">window.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/window_8h.js b/window_8h.js
deleted file mode 100644
index 6f21a916..00000000
--- a/window_8h.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var window_8h =
-[
- [ "Window", "classyage_1_1Window.html", "classyage_1_1Window" ],
- [ "WindowFlags", "window_8h.html#a09d41deeced5fca5df9dc680c9e77c38", [
- [ "SHOWN", "window_8h.html#a09d41deeced5fca5df9dc680c9e77c38a7c4273d3feb1dc60a55a74c37c3fddd6", null ],
- [ "HIDDEN", "window_8h.html#a09d41deeced5fca5df9dc680c9e77c38af7a4d995b268c416a6e01b8dc1555648", null ],
- [ "FULLSCREEN", "window_8h.html#a09d41deeced5fca5df9dc680c9e77c38a409ae568f380139ffa38d7fffa5ffb2f", null ],
- [ "BORDERLESS", "window_8h.html#a09d41deeced5fca5df9dc680c9e77c38afa8ece0eef17c604369ca69bc4b09970", null ]
- ] ]
-]; \ No newline at end of file
diff --git a/window_8h_source.html b/window_8h_source.html
index d530232a..1d98edc1 100644
--- a/window_8h_source.html
+++ b/window_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('window_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('window_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">window.h</div> </div>
@@ -158,34 +142,30 @@ $(document).ready(function(){initNavTree('window_8h_source.html','');});
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace yage</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="classyage_1_1Window_html_ae95d8670801c04af43da9e4fcc0e1006"><div class="ttname"><a href="classyage_1_1Window.html#ae95d8670801c04af43da9e4fcc0e1006">yage::Window::keyPressed</a></div><div class="ttdeci">bool keyPressed(key k)</div><div class="ttdef"><b>Definition:</b> window.cpp:115</div></div>
+<div class="ttc" id="classyage_1_1Window_html_ae95d8670801c04af43da9e4fcc0e1006"><div class="ttname"><a href="classyage_1_1Window.html#ae95d8670801c04af43da9e4fcc0e1006">yage::Window::keyPressed</a></div><div class="ttdeci">bool keyPressed(key k)</div><div class="ttdef"><b>Definition:</b> window.cpp:111</div></div>
<div class="ttc" id="namespaceyage_html_a09d41deeced5fca5df9dc680c9e77c38af7a4d995b268c416a6e01b8dc1555648"><div class="ttname"><a href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38af7a4d995b268c416a6e01b8dc1555648">yage::HIDDEN</a></div><div class="ttdef"><b>Definition:</b> window.h:24</div></div>
<div class="ttc" id="classyage_1_1Window_html_a7d7bd2f22e095df387e8b5cda2bb484e"><div class="ttname"><a href="classyage_1_1Window.html#a7d7bd2f22e095df387e8b5cda2bb484e">yage::Window::Window</a></div><div class="ttdeci">Window()</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a86d0aa8e9896850b9acfc720b5615359"><div class="ttname"><a href="classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359">yage::Window::swapBuffer</a></div><div class="ttdeci">void swapBuffer()</div><div class="ttdoc">swap the buffer </div><div class="ttdef"><b>Definition:</b> window.cpp:83</div></div>
-<div class="ttc" id="classyage_1_1Window_html_aa421df451f166dfe6441562e92b99115"><div class="ttname"><a href="classyage_1_1Window.html#aa421df451f166dfe6441562e92b99115">yage::Window::hide</a></div><div class="ttdeci">void hide()</div><div class="ttdoc">hide windowProc </div><div class="ttdef"><b>Definition:</b> window.cpp:95</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a86d0aa8e9896850b9acfc720b5615359"><div class="ttname"><a href="classyage_1_1Window.html#a86d0aa8e9896850b9acfc720b5615359">yage::Window::swapBuffer</a></div><div class="ttdeci">void swapBuffer()</div><div class="ttdoc">swap the buffer </div><div class="ttdef"><b>Definition:</b> window.cpp:75</div></div>
+<div class="ttc" id="classyage_1_1Window_html_aa421df451f166dfe6441562e92b99115"><div class="ttname"><a href="classyage_1_1Window.html#aa421df451f166dfe6441562e92b99115">yage::Window::hide</a></div><div class="ttdeci">void hide()</div><div class="ttdoc">hide windowProc </div><div class="ttdef"><b>Definition:</b> window.cpp:91</div></div>
<div class="ttc" id="classyage_1_1Window_html"><div class="ttname"><a href="classyage_1_1Window.html">yage::Window</a></div><div class="ttdef"><b>Definition:</b> window.h:30</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a5e3b209289bc343609d809d5b7f23cc8"><div class="ttname"><a href="classyage_1_1Window.html#a5e3b209289bc343609d809d5b7f23cc8">yage::Window::shouldClose</a></div><div class="ttdeci">bool shouldClose()</div><div class="ttdef"><b>Definition:</b> window.cpp:105</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a5e3b209289bc343609d809d5b7f23cc8"><div class="ttname"><a href="classyage_1_1Window.html#a5e3b209289bc343609d809d5b7f23cc8">yage::Window::shouldClose</a></div><div class="ttdeci">bool shouldClose()</div><div class="ttdef"><b>Definition:</b> window.cpp:101</div></div>
<div class="ttc" id="namespaceyage_html_a09d41deeced5fca5df9dc680c9e77c38a409ae568f380139ffa38d7fffa5ffb2f"><div class="ttname"><a href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38a409ae568f380139ffa38d7fffa5ffb2f">yage::FULLSCREEN</a></div><div class="ttdef"><b>Definition:</b> window.h:25</div></div>
<div class="ttc" id="namespaceyage_html_a09d41deeced5fca5df9dc680c9e77c38"><div class="ttname"><a href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38">yage::WindowFlags</a></div><div class="ttdeci">WindowFlags</div><div class="ttdef"><b>Definition:</b> window.h:22</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a9a8dd109e145c459e52abb3a8861e3a0"><div class="ttname"><a href="classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0">yage::Window::~Window</a></div><div class="ttdeci">~Window()</div><div class="ttdoc">destroys the window handle </div><div class="ttdef"><b>Definition:</b> window.cpp:38</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a0847f40df2aafd7da1c315fa84871f34"><div class="ttname"><a href="classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34">yage::Window::show</a></div><div class="ttdeci">void show()</div><div class="ttdoc">show window </div><div class="ttdef"><b>Definition:</b> window.cpp:100</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a9a8dd109e145c459e52abb3a8861e3a0"><div class="ttname"><a href="classyage_1_1Window.html#a9a8dd109e145c459e52abb3a8861e3a0">yage::Window::~Window</a></div><div class="ttdeci">~Window()</div><div class="ttdoc">destroys the window handle </div><div class="ttdef"><b>Definition:</b> window.cpp:39</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a0847f40df2aafd7da1c315fa84871f34"><div class="ttname"><a href="classyage_1_1Window.html#a0847f40df2aafd7da1c315fa84871f34">yage::Window::show</a></div><div class="ttdeci">void show()</div><div class="ttdoc">show window </div><div class="ttdef"><b>Definition:</b> window.cpp:96</div></div>
<div class="ttc" id="classyage_1_1Window_html_afdf3e2826526abc23a4e206c9a8a8745"><div class="ttname"><a href="classyage_1_1Window.html#afdf3e2826526abc23a4e206c9a8a8745">yage::Window::create</a></div><div class="ttdeci">void create(std::string window_name, int width, int height)</div><div class="ttdoc">create the window, initialize the handle and update the width and height </div><div class="ttdef"><b>Definition:</b> window.cpp:44</div></div>
<div class="ttc" id="namespaceyage_html_a09d41deeced5fca5df9dc680c9e77c38a7c4273d3feb1dc60a55a74c37c3fddd6"><div class="ttname"><a href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38a7c4273d3feb1dc60a55a74c37c3fddd6">yage::SHOWN</a></div><div class="ttdef"><b>Definition:</b> window.h:23</div></div>
<div class="ttc" id="namespaceyage_html_ad5a9307442e5daa8810aff942564a822"><div class="ttname"><a href="namespaceyage.html#ad5a9307442e5daa8810aff942564a822">yage::key</a></div><div class="ttdeci">key</div><div class="ttdef"><b>Definition:</b> input.h:18</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a98e2a33820ad63b2c94c56e203ff6e58"><div class="ttname"><a href="classyage_1_1Window.html#a98e2a33820ad63b2c94c56e203ff6e58">yage::Window::clearBuffer</a></div><div class="ttdeci">void clearBuffer()</div><div class="ttdoc">clear buffer </div><div class="ttdef"><b>Definition:</b> window.cpp:89</div></div>
-<div class="ttc" id="classyage_1_1Window_html_a1a311e27b1e588f0fce540ce040dcbd5"><div class="ttname"><a href="classyage_1_1Window.html#a1a311e27b1e588f0fce540ce040dcbd5">yage::Window::pollEvents</a></div><div class="ttdeci">void pollEvents() const </div><div class="ttdef"><b>Definition:</b> window.cpp:110</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a98e2a33820ad63b2c94c56e203ff6e58"><div class="ttname"><a href="classyage_1_1Window.html#a98e2a33820ad63b2c94c56e203ff6e58">yage::Window::clearBuffer</a></div><div class="ttdeci">void clearBuffer()</div><div class="ttdoc">clear buffer </div><div class="ttdef"><b>Definition:</b> window.cpp:81</div></div>
+<div class="ttc" id="classyage_1_1Window_html_a1a311e27b1e588f0fce540ce040dcbd5"><div class="ttname"><a href="classyage_1_1Window.html#a1a311e27b1e588f0fce540ce040dcbd5">yage::Window::pollEvents</a></div><div class="ttdeci">void pollEvents() const </div><div class="ttdef"><b>Definition:</b> window.cpp:106</div></div>
<div class="ttc" id="classyage_1_1Window_html_a5247a4164bf0006fe9f034cd27c5b6db"><div class="ttname"><a href="classyage_1_1Window.html#a5247a4164bf0006fe9f034cd27c5b6db">yage::Window::operator=</a></div><div class="ttdeci">Window &amp; operator=(const Window &amp;)=delete</div></div>
<div class="ttc" id="namespaceyage_html_a09d41deeced5fca5df9dc680c9e77c38afa8ece0eef17c604369ca69bc4b09970"><div class="ttname"><a href="namespaceyage.html#a09d41deeced5fca5df9dc680c9e77c38afa8ece0eef17c604369ca69bc4b09970">yage::BORDERLESS</a></div><div class="ttdef"><b>Definition:</b> window.h:26</div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="dir_11841e5da2063fc5766a682aee38e289.html">core</a></li><li class="navelem"><a class="el" href="window_8h.html">window.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/yage.png b/yage.png
new file mode 100644
index 00000000..8b779433
--- /dev/null
+++ b/yage.png
Binary files differ
diff --git a/yage_2physics_2README_8md.html b/yage_2physics_2README_8md.html
index c2e5fa9f..6dba83e9 100644
--- a/yage_2physics_2README_8md.html
+++ b/yage_2physics_2README_8md.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('yage_2physics_2README_8md.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,21 +82,18 @@ $(document).ready(function(){initNavTree('yage_2physics_2README_8md.html','');})
</iframe>
</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage/physics/README.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="yage_2physics_2README_8md.html">README.md</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/yage_8cpp.html b/yage_8cpp.html
index a1b01ab6..a3672df2 100644
--- a/yage_8cpp.html
+++ b/yage_8cpp.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('yage_8cpp.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('yage_8cpp.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -123,18 +107,18 @@ $(document).ready(function(){initNavTree('yage_8cpp.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">yage::glfwErrorCallback</a> (int, const char *description)</td></tr>
-<tr class="separator:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae53246342d5b0371f300336cbc6595a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">yage::glfwErrorCallback</a> (int, const char *)</td></tr>
+<tr class="separator:ae53246342d5b0371f300336cbc6595a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">yage::init</a> ()</td></tr>
-<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes yage. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
+<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes YAGE. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
<tr class="separator:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9d8c7327204686b3c86f4ab48672618"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">yage::quit</a> ()</td></tr>
-<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup yage. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
+<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup YAGE. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
<tr class="separator:ac9d8c7327204686b3c86f4ab48672618"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -142,15 +126,11 @@ Functions</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="yage_8cpp.html">yage.cpp</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/yage_8cpp.js b/yage_8cpp.js
deleted file mode 100644
index dca243b2..00000000
--- a/yage_8cpp.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var yage_8cpp =
-[
- [ "glfwErrorCallback", "yage_8cpp.html#a0bd2fedcbe862fdea1ea54b6b7d49bec", null ],
- [ "init", "yage_8cpp.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce", null ],
- [ "quit", "yage_8cpp.html#ac9d8c7327204686b3c86f4ab48672618", null ]
-]; \ No newline at end of file
diff --git a/yage_8h.html b/yage_8h.html
index 8a17a9b7..a8a27d20 100644
--- a/yage_8h.html
+++ b/yage_8h.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('yage_8h.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('yage_8h.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
@@ -129,27 +113,28 @@ $(document).ready(function(){initNavTree('yage_8h.html','');});
<code>#include &quot;<a class="el" href="particlebody_8h_source.html">physics/particlebody.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="rectanglecollider_8h_source.html">physics/rectanglecollider.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="rigidbody_8h_source.html">physics/rigidbody.h</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="drawable_8h_source.html">render/drawable.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="shader_8h_source.html">render/shader.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="spritebatch_8h_source.html">render/spritebatch.h</a>&quot;</code><br/>
-<code>#include &quot;<a class="el" href="drawable_8h_source.html">render/drawable.h</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="engine_8h_source.html">engine/engine.h</a>&quot;</code><br/>
</div>
<p><a href="yage_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceyage"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html">yage</a></td></tr>
-<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project namespace. <br/></td></tr>
+<tr class="memdesc:namespaceyage"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core includes. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">yage::glfwErrorCallback</a> (int, const char *description)</td></tr>
-<tr class="separator:a0bd2fedcbe862fdea1ea54b6b7d49bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae53246342d5b0371f300336cbc6595a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">yage::glfwErrorCallback</a> (int, const char *)</td></tr>
+<tr class="separator:ae53246342d5b0371f300336cbc6595a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">yage::init</a> ()</td></tr>
-<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes yage. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
+<tr class="memdesc:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes YAGE. <a href="#a4fc8b4d2a19d4c7f7f1bd42a788827ce">More...</a><br/></td></tr>
<tr class="separator:a4fc8b4d2a19d4c7f7f1bd42a788827ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9d8c7327204686b3c86f4ab48672618"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">yage::quit</a> ()</td></tr>
-<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup yage. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
+<tr class="memdesc:ac9d8c7327204686b3c86f4ab48672618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quit and cleanup YAGE. <a href="#ac9d8c7327204686b3c86f4ab48672618">More...</a><br/></td></tr>
<tr class="separator:ac9d8c7327204686b3c86f4ab48672618"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -157,15 +142,11 @@ Functions</h2></td></tr>
<p>Copyright (c) 2017 Yann Herklotz Grave <a href="#" onclick="location.href='mai'+'lto:'+'ymh'+'er'+'klo'+'tz'+'@gm'+'ai'+'l.c'+'om'; return false;">ymher<span style="display: none;">.nosp@m.</span>klot<span style="display: none;">.nosp@m.</span>z@gma<span style="display: none;">.nosp@m.</span>il.c<span style="display: none;">.nosp@m.</span>om</a> </p>
<h2>MIT License, see LICENSE file for more details. </h2>
</div></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="yage_8h.html">yage.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>
diff --git a/yage_8h.js b/yage_8h.js
deleted file mode 100644
index c91755ba..00000000
--- a/yage_8h.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var yage_8h =
-[
- [ "glfwErrorCallback", "yage_8h.html#a0bd2fedcbe862fdea1ea54b6b7d49bec", null ],
- [ "init", "yage_8h.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce", null ],
- [ "quit", "yage_8h.html#ac9d8c7327204686b3c86f4ab48672618", null ]
-]; \ No newline at end of file
diff --git a/yage_8h_source.html b/yage_8h_source.html
index d30ba98b..774e8c48 100644
--- a/yage_8h_source.html
+++ b/yage_8h_source.html
@@ -8,13 +8,6 @@
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
-<link href="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
-</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
@@ -28,6 +21,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="yage.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">YAGE
&#160;<span id="projectnumber">v0.1.4.0</span>
@@ -74,21 +68,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('yage_8h_source.html','');});
-</script>
-<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -103,6 +82,11 @@ $(document).ready(function(){initNavTree('yage_8h_source.html','');});
</iframe>
</div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li> </ul>
+</div>
+</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">yage.h</div> </div>
@@ -112,50 +96,57 @@ $(document).ready(function(){initNavTree('yage_8h_source.html','');});
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef YAGE_YAGE_H</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define YAGE_YAGE_H</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="camera_8h.html">core/camera.h</a>&quot;</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="iomanager_8h.html">core/iomanager.h</a>&quot;</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">core/logger.h</a>&quot;</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="resourcemanager_8h.html">core/resourcemanager.h</a>&quot;</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritesheet_8h.html">core/spritesheet.h</a>&quot;</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="window_8h.html">core/window.h</a>&quot;</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="input_8h.html">data/input.h</a>&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="texture_8h.html">data/texture.h</a>&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="vertex_8h.html">data/vertex.h</a>&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="matrix_8h.html">math/matrix.h</a>&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="body_8h.html">physics/body.h</a>&quot;</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="particlebody_8h.html">physics/particlebody.h</a>&quot;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rectanglecollider_8h.html">physics/rectanglecollider.h</a>&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rigidbody_8h.html">physics/rigidbody.h</a>&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="shader_8h.html">render/shader.h</a>&quot;</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritebatch_8h.html">render/spritebatch.h</a>&quot;</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="drawable_8h.html">render/drawable.h</a>&quot;</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>yage</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">glfwErrorCallback</a>(<span class="keywordtype">int</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *);</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">init</a>();</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">quit</a>();</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;} <span class="comment">// namespace yage</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="camera_8h.html">core/camera.h</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="iomanager_8h.html">core/iomanager.h</a>&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">core/logger.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="resourcemanager_8h.html">core/resourcemanager.h</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritesheet_8h.html">core/spritesheet.h</a>&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="window_8h.html">core/window.h</a>&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="input_8h.html">data/input.h</a>&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="texture_8h.html">data/texture.h</a>&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="vertex_8h.html">data/vertex.h</a>&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="matrix_8h.html">math/matrix.h</a>&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="body_8h.html">physics/body.h</a>&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="particlebody_8h.html">physics/particlebody.h</a>&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rectanglecollider_8h.html">physics/rectanglecollider.h</a>&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rigidbody_8h.html">physics/rigidbody.h</a>&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="drawable_8h.html">render/drawable.h</a>&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="shader_8h.html">render/shader.h</a>&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="spritebatch_8h.html">render/spritebatch.h</a>&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="engine_8h.html">engine/engine.h</a>&quot;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">namespace </span>yage</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">glfwErrorCallback</a>(<span class="keywordtype">int</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">init</a>();</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">quit</a>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace yage</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="rigidbody_8h_html"><div class="ttname"><a href="rigidbody_8h.html">rigidbody.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="namespaceyage_html_ac9d8c7327204686b3c86f4ab48672618"><div class="ttname"><a href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">yage::quit</a></div><div class="ttdeci">void quit()</div><div class="ttdoc">Quit and cleanup yage. </div><div class="ttdef"><b>Definition:</b> yage.cpp:32</div></div>
+<div class="ttc" id="namespaceyage_html_ac9d8c7327204686b3c86f4ab48672618"><div class="ttname"><a href="namespaceyage.html#ac9d8c7327204686b3c86f4ab48672618">yage::quit</a></div><div class="ttdeci">void quit()</div><div class="ttdoc">Quit and cleanup YAGE. </div><div class="ttdef"><b>Definition:</b> yage.cpp:32</div></div>
<div class="ttc" id="window_8h_html"><div class="ttname"><a href="window_8h.html">window.h</a></div><div class="ttdoc"> </div></div>
+<div class="ttc" id="engine_8h_html"><div class="ttname"><a href="engine_8h.html">engine.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="input_8h_html"><div class="ttname"><a href="input_8h.html">input.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="body_8h_html"><div class="ttname"><a href="body_8h.html">body.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="camera_8h_html"><div class="ttname"><a href="camera_8h.html">camera.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="texture_8h_html"><div class="ttname"><a href="texture_8h.html">texture.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="iomanager_8h_html"><div class="ttname"><a href="iomanager_8h.html">iomanager.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="namespaceyage_html_a4fc8b4d2a19d4c7f7f1bd42a788827ce"><div class="ttname"><a href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">yage::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">Initializes yage. </div><div class="ttdef"><b>Definition:</b> yage.cpp:24</div></div>
+<div class="ttc" id="namespaceyage_html_a4fc8b4d2a19d4c7f7f1bd42a788827ce"><div class="ttname"><a href="namespaceyage.html#a4fc8b4d2a19d4c7f7f1bd42a788827ce">yage::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">Initializes YAGE. </div><div class="ttdef"><b>Definition:</b> yage.cpp:24</div></div>
<div class="ttc" id="shader_8h_html"><div class="ttname"><a href="shader_8h.html">shader.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="namespaceyage_html_a0bd2fedcbe862fdea1ea54b6b7d49bec"><div class="ttname"><a href="namespaceyage.html#a0bd2fedcbe862fdea1ea54b6b7d49bec">yage::glfwErrorCallback</a></div><div class="ttdeci">void glfwErrorCallback(int, const char *description)</div><div class="ttdef"><b>Definition:</b> yage.cpp:19</div></div>
<div class="ttc" id="rectanglecollider_8h_html"><div class="ttname"><a href="rectanglecollider_8h.html">rectanglecollider.h</a></div><div class="ttdoc"> </div></div>
-<div class="ttc" id="drawable_8h_html"><div class="ttname"><a href="drawable_8h.html">drawable.h</a></div></div>
+<div class="ttc" id="drawable_8h_html"><div class="ttname"><a href="drawable_8h.html">drawable.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="spritesheet_8h_html"><div class="ttname"><a href="spritesheet_8h.html">spritesheet.h</a></div><div class="ttdoc"> </div></div>
+<div class="ttc" id="namespaceyage_html_ae53246342d5b0371f300336cbc6595a3"><div class="ttname"><a href="namespaceyage.html#ae53246342d5b0371f300336cbc6595a3">yage::glfwErrorCallback</a></div><div class="ttdeci">void glfwErrorCallback(int, const char *description)</div><div class="ttdef"><b>Definition:</b> yage.cpp:19</div></div>
<div class="ttc" id="vertex_8h_html"><div class="ttname"><a href="vertex_8h.html">vertex.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="matrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="resourcemanager_8h_html"><div class="ttname"><a href="resourcemanager_8h.html">resourcemanager.h</a></div><div class="ttdoc"> </div></div>
@@ -163,15 +154,11 @@ $(document).ready(function(){initNavTree('yage_8h_source.html','');});
<div class="ttc" id="spritebatch_8h_html"><div class="ttname"><a href="spritebatch_8h.html">spritebatch.h</a></div><div class="ttdoc"> </div></div>
<div class="ttc" id="particlebody_8h_html"><div class="ttname"><a href="particlebody_8h.html">particlebody.h</a></div><div class="ttdoc"> </div></div>
</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_0a5be4b85c8e2c05f7a9f5a803f53125.html">yage</a></li><li class="navelem"><a class="el" href="yage_8h.html">yage.h</a></li>
- <li class="footer">Generated on Sat Jan 6 2018 21:19:57 for YAGE by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
- </ul>
-</div>
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Jan 10 2018 18:44:07 for YAGE by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
</body>
</html>