diff --git a/tools/doc/compilation_no_renderer.md.html b/tools/doc/compilation_no_renderer.md.html index d7e0acc..955e315 100644 --- a/tools/doc/compilation_no_renderer.md.html +++ b/tools/doc/compilation_no_renderer.md.html @@ -12,7 +12,7 @@ If you use an ide, just add these files to your project (so the .cpp file gets c ## Manual setup -### g++ / mingw: +### g++ / mingw If you are using a compiler directly, then just add `sfw.cpp` or `sfwl.cpp` to the list of files that you are compiling: @@ -32,7 +32,7 @@ g++ -g -c main.cpp -o main.o g++ -g sfw.o main.o -o prog ``` -### MSVC: +### MSVC If you are using a compiler directly, then just add `sfw.cpp` or `sfwl.cpp` to the list of files that you are compiling: diff --git a/tools/doc/generate_all.sh b/tools/doc/generate_all.sh new file mode 100755 index 0000000..6200da4 --- /dev/null +++ b/tools/doc/generate_all.sh @@ -0,0 +1,10 @@ + +./game ../merger/out/core/sfw.h -osfw_core.md.html -tsfw_core_template.html +./game ../merger/out/object/sfw.h -osfw_object.md.html -tsfw_object_template.html +./game ../merger/out/render_core/sfw.h -osfw_render_core.md.html -tsfw_render_core_template.html +./game ../merger/out/render_immediate/sfw.h -osfw_render_immediate.md.html -tsfw_render_immediate_template.html +./game ../merger/out/render_objects/sfw.h -osfw_render_objects.md.html -tsfw_render_objects_template.html +./game ../merger/out/full/sfw.h -osfw_full.md.html -tsfw_full_template.html + +./game ../merger/out/sfwl_core/sfwl.h -osfwl_core.md.html -tsfwl_core_template.html +./game ../merger/out/sfwl_full/sfwl.h -osfwl_full.md.html -tsfwl_full_template.html diff --git a/tools/doc/index.md.html b/tools/doc/index.md.html deleted file mode 100644 index e091e9e..0000000 --- a/tools/doc/index.md.html +++ /dev/null @@ -1,147 +0,0 @@ - - **Sample API Doc** - 1.1 Release - - -This is the markdeep generic "Company API" template. Replace -`company-logo-512.png` with your organization's logo and adjust the -`company-api.css` styling to match the desired colors. - -See `CA::OpenHandle()` for an example of an auto-generated API link. -The rest of the information on this page is bogus placeholder to show the formatting. - - -API Modules -==================================================================================== - -The CA library is a layer on top of the resource manager and parsing libraries that -provides utilities for streaming processing and client-side process construction. - - -Modules ----------------------------------------------------------------------------------------- - -The CA library contains the APIs for applications to allocate and exchange resources. - - -!!! Attention Attention - Always read all of the documentation. - -[CA APIs](#CA) -: List of APIs to manage external processes. - -CA Buffer List APIs -: Methods to process buffer resources separate from computation. - -CA Data Structures -: Specifies the data structures used for complex cases. - - -## Handles - -`CA::OpenHandle(const std::string&)` -: Open a reference handle. - -`CA::ReadMetaData(const Handle&)` -: Metadata about the event. - -`CA::CloseHandle(const Handle&)` -: Free all handle resources, recursively. - - -CA -==================================================================================== - -!!! Warning Warning - The API content represents the set of APIs you can use directly. Some APIs - are not documented and we advise you do not use them directly. Using undocumented - APIs can lead to incompatibility when upgrading to later releases. - - -These examples assume that your directory structure is: - -********************************************************** -* -* 📂 ca1 -* | -* +-- 📄 bar.txt -* | -* +-- 📂 foo -* | | -* | ⋮ -* | -* +-- 📂 xsource -* | | -* | +-- 📂 data -* | | | -* | | +-- 📄 manifest.json -* | | | -* | ⋮ ⋮ -* | -* ⋮ -********************************************************** -[Directory structure.] - - -Table ------------------------------------------------------------------- - - -Screen | Factor | Used | Efficiency -----------:|------------:|----------:|---------: -1366x768 | 3x | 1152x672 | 74% -1440x900 | 3x | 1152x672 | 60% -*1600x900* | *4x* | 1536x896 | *96%* -1680x1050 | 4x | 1536x896 | 78% -1920x1080 | 4x | 1536x896 | 66% -*1920x1200*| *5x* | 1920x1120 | *93%* -[A Table] - - -More Info ------------------------------------------------------------------- - -****************************************************************** -* ^ y -* | -* .---------. .----|----. -* | | | | | -* | *-------> x | *--------> x -* | | | | | -* '----|----' '---------' -* | -* v y -****************************************************************** -[Figure 1: Coordinate Example] - - - ----- - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GLSL -vec3 sphNormal(in vec3 pos, in vec4 sph) { - return normalize(pos-sph.xyz); -} - -vec3 camera(vec2 U, vec2 r, vec3 ro, vec3 la, float fl) { - vec2 uv = (U - r*.5)/r.y; - vec3 fwd = normalize(la-ro), - rgt = normalize(vec3(fwd.z, 0., -fwd.x)); - return normalize(fwd + fl*uv.x*rgt + fl*uv.y*cross(fwd, rgt)); -} - -float vMap(vec3 p) { - float hit = 0.0; - vec2 h2 = hash22(floor(p.xz*0.25)); - if (p.z > 0.0) { - if (p.y < -10.0 && h2.x > 0.5) hit=1.0; - if (p.y > 10.0 && h2.y > 0.5) hit=1.0; - } - return hit; -} -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -[Code listing] - - - - - diff --git a/tools/doc/run.sh b/tools/doc/run.sh index b018c7c..d6e30ba 100755 --- a/tools/doc/run.sh +++ b/tools/doc/run.sh @@ -1,5 +1,3 @@ -./game ../merger/out/full/sfw.h --remaining +./game ../merger/out/full/sfw.h -tsfw_full_template.html --remaining - -./game ../merger/out/full/sfw.h -osfw_full.md.html diff --git a/tools/doc/sfw_core_template.html b/tools/doc/sfw_core_template.html new file mode 100644 index 0000000..238fc54 --- /dev/null +++ b/tools/doc/sfw_core_template.html @@ -0,0 +1,1057 @@ + +**SFW Docs** + +SFW - Simple Framework - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core + +COMPILE +==================================================================================== + +$FILE_Compilation_No_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2 + + |||STRUCT_Vector2||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Vector3 + + |||STRUCT_Vector3||| + +
+ + +
Vector3i + + |||STRUCT_Vector3i||| + +
+ + +
Vector4 + + |||STRUCT_Vector4||| + +
+ + +
Vector4i + + |||STRUCT_Vector4i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
Rect2 + + |||STRUCT_Rect2||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Plane + + |||STRUCT_Plane||| + +
+ + +
AABB + + |||STRUCT_AABB||| + +
+ + +
Face3 + + |||STRUCT_Face3||| + +
+ + +
Transform2D + + |||STRUCT_Transform2D||| + +
+ + +
Quaternion + + |||STRUCT_Quaternion||| + +
+ + +
Basis + + |||STRUCT_Basis||| + +
+ + +
Transform + + |||STRUCT_Transform||| + +
+ + +
Projection + + |||STRUCT_Projection||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/index_template.md.html b/tools/doc/sfw_full_template.html similarity index 100% rename from tools/doc/index_template.md.html rename to tools/doc/sfw_full_template.html diff --git a/tools/doc/sfw_object_template.html b/tools/doc/sfw_object_template.html new file mode 100644 index 0000000..9188d9e --- /dev/null +++ b/tools/doc/sfw_object_template.html @@ -0,0 +1,1143 @@ + +**SFW Docs** + +SFW - Simple Framework - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core, Object + +COMPILE +==================================================================================== + +$FILE_Compilation_No_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2 + + |||STRUCT_Vector2||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Vector3 + + |||STRUCT_Vector3||| + +
+ + +
Vector3i + + |||STRUCT_Vector3i||| + +
+ + +
Vector4 + + |||STRUCT_Vector4||| + +
+ + +
Vector4i + + |||STRUCT_Vector4i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
Rect2 + + |||STRUCT_Rect2||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Plane + + |||STRUCT_Plane||| + +
+ + +
AABB + + |||STRUCT_AABB||| + +
+ + +
Face3 + + |||STRUCT_Face3||| + +
+ + +
Transform2D + + |||STRUCT_Transform2D||| + +
+ + +
Quaternion + + |||STRUCT_Quaternion||| + +
+ + +
Basis + + |||STRUCT_Basis||| + +
+ + +
Transform + + |||STRUCT_Transform||| + +
+ + +
Projection + + |||STRUCT_Projection||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +OBJECT +==================================================================================== + +Object + + +
Object + + |||CLASS_Object||| + +
+ + +
ObjectDB + + |||CLASS_ObjectDB||| + +
+ +Reference + + +
Reference + + |||CLASS_Reference||| + +
+ + +
Ref + + |||CLASS_Ref||| + +
+ +Resource + + +
Resource + + |||CLASS_Resource||| + +
+ +Variant + + +
Variant + + |||CLASS_Variant||| + +
+ + +Variant Containers + + +
Array + + |||CLASS_Array||| + +
+ + +
Dictionary + + |||CLASS_Dictionary||| + +
+ +Utilities + + +
Signal + + |||CLASS_Signal||| + +
+ + +
CoreStringNames + + |||CLASS_CoreStringNames||| + +
+ +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/sfw_render_core_template.html b/tools/doc/sfw_render_core_template.html new file mode 100644 index 0000000..7aebbf6 --- /dev/null +++ b/tools/doc/sfw_render_core_template.html @@ -0,0 +1,1448 @@ + +**SFW Docs** + +SFW - Simple Framework - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core, Object, Render Core + +COMPILE +==================================================================================== + +$FILE_Compilation_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Note that if you use the Application class, it's constructor will do this for you automatically. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Keys + + +
KeyList + +|||ENUM_KeyList||| + +
+ + +
KeyModifierMask + +|||ENUM_KeyModifierMask||| + +
+ + +
ButtonList + +|||ENUM_ButtonList||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2 + + |||STRUCT_Vector2||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Vector3 + + |||STRUCT_Vector3||| + +
+ + +
Vector3i + + |||STRUCT_Vector3i||| + +
+ + +
Vector4 + + |||STRUCT_Vector4||| + +
+ + +
Vector4i + + |||STRUCT_Vector4i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
Rect2 + + |||STRUCT_Rect2||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Plane + + |||STRUCT_Plane||| + +
+ + +
AABB + + |||STRUCT_AABB||| + +
+ + +
Face3 + + |||STRUCT_Face3||| + +
+ + +
Transform2D + + |||STRUCT_Transform2D||| + +
+ + +
Quaternion + + |||STRUCT_Quaternion||| + +
+ + +
Basis + + |||STRUCT_Basis||| + +
+ + +
Transform + + |||STRUCT_Transform||| + +
+ + +
Projection + + |||STRUCT_Projection||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +OBJECT +==================================================================================== + +Object + + +
Object + + |||CLASS_Object||| + +
+ + +
ObjectDB + + |||CLASS_ObjectDB||| + +
+ +Reference + + +
Reference + + |||CLASS_Reference||| + +
+ + +
Ref + + |||CLASS_Ref||| + +
+ +Resource + + +
Resource + + |||CLASS_Resource||| + +
+ +Variant + + +
Variant + + |||CLASS_Variant||| + +
+ + +Variant Containers + + +
Array + + |||CLASS_Array||| + +
+ + +
Dictionary + + |||CLASS_Dictionary||| + +
+ +Utilities + + +
Signal + + |||CLASS_Signal||| + +
+ + +
CoreStringNames + + |||CLASS_CoreStringNames||| + +
+ +RENDER CORE +==================================================================================== + +Application +------------------------------------------------------------------ + + +
Application + + |||CLASS_Application||| + +
+ + +
Scene + + |||CLASS_Scene||| + +
+ + +
AppWindow + + |||CLASS_AppWindow||| + +
+ +Input +------------------------------------------------------------------ + +Singletons + + +
Input + + |||CLASS_Input||| + +
+ + +
InputMap + + |||CLASS_InputMap||| + +
+ +Events + + +
InputEvent + + |||CLASS_InputEvent||| + +
+ + + +
InputEventWithModifiers + + |||CLASS_InputEventWithModifiers||| + +
+ + +
InputEventKey + + |||CLASS_InputEventKey||| + +
+ + +
InputEventMouse + + |||CLASS_InputEventMouse||| + +
+ + +
InputEventMouseButton + + |||CLASS_InputEventMouseButton||| + +
+ + +
InputEventMouseMotion + + |||CLASS_InputEventMouseMotion||| + +
+ + +
InputEventAction + + |||CLASS_InputEventAction||| + +
+ + +
InputEventShortCut + + |||CLASS_InputEventShortCut||| + +
+ +Utility + + +
ShortCut + + |||CLASS_ShortCut||| + +
+ +Rendering +------------------------------------------------------------------ + +Images + + +
Image + + |||CLASS_Image||| + +
+ + +
Texture + + |||CLASS_Texture||| + +
+ + +
RenderTexture + + |||CLASS_RenderTexture||| + +
+ + +
FrameBuffer + + |||CLASS_FrameBuffer||| + +
+ +Meshes + + +
Mesh + + |||CLASS_Mesh||| + +
+ + +
MeshUtils + + |||CLASS_MeshUtils||| + +
+ +Shaders + + +
Shader + + |||CLASS_Shader||| + +
+ + +
ShaderCache + + |||CLASS_ShaderCache||| + +
+ +Fonts + + +
Font + + |||CLASS_Font||| + +
+ +Materials + + +
Material + + |||CLASS_Material||| + +
+ +Text Materials + + +
FontMaterial + + |||CLASS_FontMaterial||| + +
+ +2D Materials + + +
ColorMaterial2D + + |||CLASS_ColorMaterial2D||| + +
+ + +
TextureMaterial2D + + |||CLASS_TextureMaterial2D||| + +
+ +3D Materials + + +
ColorMaterial + + |||CLASS_ColorMaterial||| + +
+ + +
TextureMaterial + + |||CLASS_TextureMaterial||| + +
+ + +
ColoredMaterial + + |||CLASS_ColoredMaterial||| + +
+ + +
TransparentTextureMaterial + + |||CLASS_TransparentTextureMaterial||| + +
+ +State + + +
RenderState + + |||CLASS_RenderState||| + +
+ +Coordinate System + +****************************************************************** +* +* +x +* *--->--------. .------------. +* | | | | +* v +y | | | +* | | +y ^ ^ +z | +* | | |/ | +* '------------' *--->--------' +* / +x +* -z +* 2D 3D +****************************************************************** + + +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +$LICENSES_Renderer$ + +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/sfw_render_immediate_template.html b/tools/doc/sfw_render_immediate_template.html new file mode 100644 index 0000000..6af7ba8 --- /dev/null +++ b/tools/doc/sfw_render_immediate_template.html @@ -0,0 +1,1459 @@ + +**SFW Docs** + +SFW - Simple Framework - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core, Object, Render Core, Render Immediate + +COMPILE +==================================================================================== + +$FILE_Compilation_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Note that if you use the Application class, it's constructor will do this for you automatically. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Keys + + +
KeyList + +|||ENUM_KeyList||| + +
+ + +
KeyModifierMask + +|||ENUM_KeyModifierMask||| + +
+ + +
ButtonList + +|||ENUM_ButtonList||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2 + + |||STRUCT_Vector2||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Vector3 + + |||STRUCT_Vector3||| + +
+ + +
Vector3i + + |||STRUCT_Vector3i||| + +
+ + +
Vector4 + + |||STRUCT_Vector4||| + +
+ + +
Vector4i + + |||STRUCT_Vector4i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
Rect2 + + |||STRUCT_Rect2||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Plane + + |||STRUCT_Plane||| + +
+ + +
AABB + + |||STRUCT_AABB||| + +
+ + +
Face3 + + |||STRUCT_Face3||| + +
+ + +
Transform2D + + |||STRUCT_Transform2D||| + +
+ + +
Quaternion + + |||STRUCT_Quaternion||| + +
+ + +
Basis + + |||STRUCT_Basis||| + +
+ + +
Transform + + |||STRUCT_Transform||| + +
+ + +
Projection + + |||STRUCT_Projection||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +OBJECT +==================================================================================== + +Object + + +
Object + + |||CLASS_Object||| + +
+ + +
ObjectDB + + |||CLASS_ObjectDB||| + +
+ +Reference + + +
Reference + + |||CLASS_Reference||| + +
+ + +
Ref + + |||CLASS_Ref||| + +
+ +Resource + + +
Resource + + |||CLASS_Resource||| + +
+ +Variant + + +
Variant + + |||CLASS_Variant||| + +
+ + +Variant Containers + + +
Array + + |||CLASS_Array||| + +
+ + +
Dictionary + + |||CLASS_Dictionary||| + +
+ +Utilities + + +
Signal + + |||CLASS_Signal||| + +
+ + +
CoreStringNames + + |||CLASS_CoreStringNames||| + +
+ +RENDER CORE +==================================================================================== + +Application +------------------------------------------------------------------ + + +
Application + + |||CLASS_Application||| + +
+ + +
Scene + + |||CLASS_Scene||| + +
+ + +
AppWindow + + |||CLASS_AppWindow||| + +
+ +Input +------------------------------------------------------------------ + +Singletons + + +
Input + + |||CLASS_Input||| + +
+ + +
InputMap + + |||CLASS_InputMap||| + +
+ +Events + + +
InputEvent + + |||CLASS_InputEvent||| + +
+ + + +
InputEventWithModifiers + + |||CLASS_InputEventWithModifiers||| + +
+ + +
InputEventKey + + |||CLASS_InputEventKey||| + +
+ + +
InputEventMouse + + |||CLASS_InputEventMouse||| + +
+ + +
InputEventMouseButton + + |||CLASS_InputEventMouseButton||| + +
+ + +
InputEventMouseMotion + + |||CLASS_InputEventMouseMotion||| + +
+ + +
InputEventAction + + |||CLASS_InputEventAction||| + +
+ + +
InputEventShortCut + + |||CLASS_InputEventShortCut||| + +
+ +Utility + + +
ShortCut + + |||CLASS_ShortCut||| + +
+ +Rendering +------------------------------------------------------------------ + +Images + + +
Image + + |||CLASS_Image||| + +
+ + +
Texture + + |||CLASS_Texture||| + +
+ + +
RenderTexture + + |||CLASS_RenderTexture||| + +
+ + +
FrameBuffer + + |||CLASS_FrameBuffer||| + +
+ +Meshes + + +
Mesh + + |||CLASS_Mesh||| + +
+ + +
MeshUtils + + |||CLASS_MeshUtils||| + +
+ +Shaders + + +
Shader + + |||CLASS_Shader||| + +
+ + +
ShaderCache + + |||CLASS_ShaderCache||| + +
+ +Fonts + + +
Font + + |||CLASS_Font||| + +
+ +Materials + + +
Material + + |||CLASS_Material||| + +
+ +Text Materials + + +
FontMaterial + + |||CLASS_FontMaterial||| + +
+ +2D Materials + + +
ColorMaterial2D + + |||CLASS_ColorMaterial2D||| + +
+ + +
TextureMaterial2D + + |||CLASS_TextureMaterial2D||| + +
+ +3D Materials + + +
ColorMaterial + + |||CLASS_ColorMaterial||| + +
+ + +
TextureMaterial + + |||CLASS_TextureMaterial||| + +
+ + +
ColoredMaterial + + |||CLASS_ColoredMaterial||| + +
+ + +
TransparentTextureMaterial + + |||CLASS_TransparentTextureMaterial||| + +
+ +State + + +
RenderState + + |||CLASS_RenderState||| + +
+ +Coordinate System + +****************************************************************** +* +* +x +* *--->--------. .------------. +* | | | | +* v +y | | | +* | | +y ^ ^ +z | +* | | |/ | +* '------------' *--->--------' +* / +x +* -z +* 2D 3D +****************************************************************** + + +RENDER IMMEDIATE +==================================================================================== + + + +
Renderer + + |||CLASS_Renderer||| + +
+ +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +$LICENSES_Renderer$ + +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/sfw_render_objects_template.html b/tools/doc/sfw_render_objects_template.html new file mode 100644 index 0000000..8aa16ae --- /dev/null +++ b/tools/doc/sfw_render_objects_template.html @@ -0,0 +1,1560 @@ + +**SFW Docs** + +SFW - Simple Framework - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core, Object, Render Core, Render Objects + +COMPILE +==================================================================================== + +$FILE_Compilation_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Note that if you use the Application class, it's constructor will do this for you automatically. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Keys + + +
KeyList + +|||ENUM_KeyList||| + +
+ + +
KeyModifierMask + +|||ENUM_KeyModifierMask||| + +
+ + +
ButtonList + +|||ENUM_ButtonList||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2 + + |||STRUCT_Vector2||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Vector3 + + |||STRUCT_Vector3||| + +
+ + +
Vector3i + + |||STRUCT_Vector3i||| + +
+ + +
Vector4 + + |||STRUCT_Vector4||| + +
+ + +
Vector4i + + |||STRUCT_Vector4i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
Rect2 + + |||STRUCT_Rect2||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Plane + + |||STRUCT_Plane||| + +
+ + +
AABB + + |||STRUCT_AABB||| + +
+ + +
Face3 + + |||STRUCT_Face3||| + +
+ + +
Transform2D + + |||STRUCT_Transform2D||| + +
+ + +
Quaternion + + |||STRUCT_Quaternion||| + +
+ + +
Basis + + |||STRUCT_Basis||| + +
+ + +
Transform + + |||STRUCT_Transform||| + +
+ + +
Projection + + |||STRUCT_Projection||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +OBJECT +==================================================================================== + +Object + + +
Object + + |||CLASS_Object||| + +
+ + +
ObjectDB + + |||CLASS_ObjectDB||| + +
+ +Reference + + +
Reference + + |||CLASS_Reference||| + +
+ + +
Ref + + |||CLASS_Ref||| + +
+ +Resource + + +
Resource + + |||CLASS_Resource||| + +
+ +Variant + + +
Variant + + |||CLASS_Variant||| + +
+ + +Variant Containers + + +
Array + + |||CLASS_Array||| + +
+ + +
Dictionary + + |||CLASS_Dictionary||| + +
+ +Utilities + + +
Signal + + |||CLASS_Signal||| + +
+ + +
CoreStringNames + + |||CLASS_CoreStringNames||| + +
+ +RENDER CORE +==================================================================================== + +Application +------------------------------------------------------------------ + + +
Application + + |||CLASS_Application||| + +
+ + +
Scene + + |||CLASS_Scene||| + +
+ + +
AppWindow + + |||CLASS_AppWindow||| + +
+ +Input +------------------------------------------------------------------ + +Singletons + + +
Input + + |||CLASS_Input||| + +
+ + +
InputMap + + |||CLASS_InputMap||| + +
+ +Events + + +
InputEvent + + |||CLASS_InputEvent||| + +
+ + + +
InputEventWithModifiers + + |||CLASS_InputEventWithModifiers||| + +
+ + +
InputEventKey + + |||CLASS_InputEventKey||| + +
+ + +
InputEventMouse + + |||CLASS_InputEventMouse||| + +
+ + +
InputEventMouseButton + + |||CLASS_InputEventMouseButton||| + +
+ + +
InputEventMouseMotion + + |||CLASS_InputEventMouseMotion||| + +
+ + +
InputEventAction + + |||CLASS_InputEventAction||| + +
+ + +
InputEventShortCut + + |||CLASS_InputEventShortCut||| + +
+ +Utility + + +
ShortCut + + |||CLASS_ShortCut||| + +
+ +Rendering +------------------------------------------------------------------ + +Images + + +
Image + + |||CLASS_Image||| + +
+ + +
Texture + + |||CLASS_Texture||| + +
+ + +
RenderTexture + + |||CLASS_RenderTexture||| + +
+ + +
FrameBuffer + + |||CLASS_FrameBuffer||| + +
+ +Meshes + + +
Mesh + + |||CLASS_Mesh||| + +
+ + +
MeshUtils + + |||CLASS_MeshUtils||| + +
+ +Shaders + + +
Shader + + |||CLASS_Shader||| + +
+ + +
ShaderCache + + |||CLASS_ShaderCache||| + +
+ +Fonts + + +
Font + + |||CLASS_Font||| + +
+ +Materials + + +
Material + + |||CLASS_Material||| + +
+ +Text Materials + + +
FontMaterial + + |||CLASS_FontMaterial||| + +
+ +2D Materials + + +
ColorMaterial2D + + |||CLASS_ColorMaterial2D||| + +
+ + +
TextureMaterial2D + + |||CLASS_TextureMaterial2D||| + +
+ +3D Materials + + +
ColorMaterial + + |||CLASS_ColorMaterial||| + +
+ + +
TextureMaterial + + |||CLASS_TextureMaterial||| + +
+ + +
ColoredMaterial + + |||CLASS_ColoredMaterial||| + +
+ + +
TransparentTextureMaterial + + |||CLASS_TransparentTextureMaterial||| + +
+ +State + + +
RenderState + + |||CLASS_RenderState||| + +
+ +Coordinate System + +****************************************************************** +* +* +x +* *--->--------. .------------. +* | | | | +* v +y | | | +* | | +y ^ ^ +z | +* | | |/ | +* '------------' *--->--------' +* / +x +* -z +* 2D 3D +****************************************************************** + + +RENDER OBJECTS +==================================================================================== + +Text +------------------------------------------------------------------ + +Base + + +
Text2D + + |||CLASS_Text2D||| + +
+ +2D +------------------------------------------------------------------ + +Base + + +
Object2D + + |||CLASS_Object2D||| + +
+ +Camera + + +
Camera2D + + |||CLASS_Camera2D||| + +
+ +Objects + + +
Sprite + + |||CLASS_Sprite||| + +
+ + +
TileMap + + |||CLASS_TileMap||| + +
+ + +
MeshInstance2D + + |||CLASS_MeshInstance2D||| + +
+ + +3D +------------------------------------------------------------------ + +Base + + +
Object3D + + |||CLASS_Object3D||| + +
+ +Camera + + +
Camera3D + + |||CLASS_Camera3D||| + +
+ + +
OrthographicCamera + + |||CLASS_OrthographicCamera||| + +
+ + +
PerspectiveCamera + + |||CLASS_PerspectiveCamera||| + +
+ + +
FrustumCamera + + |||CLASS_FrustumCamera||| + +
+ +Objects + + +
MeshInstance3D + + |||CLASS_MeshInstance3D||| + +
+ + +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +$LICENSES_Renderer$ + +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/sfwl_core_template.html b/tools/doc/sfwl_core_template.html new file mode 100644 index 0000000..ba0a2df --- /dev/null +++ b/tools/doc/sfwl_core_template.html @@ -0,0 +1,959 @@ + +**SFW Docs** + +SFW - Simple Framework - Lite Version - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core + +COMPILE +==================================================================================== + +$FILE_Compilation_No_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + + diff --git a/tools/doc/sfwl_full_template.html b/tools/doc/sfwl_full_template.html new file mode 100644 index 0000000..5c5d112 --- /dev/null +++ b/tools/doc/sfwl_full_template.html @@ -0,0 +1,1045 @@ + +**SFW Docs** + +SFW - Simple Framework - Lite Version - https://github.com/Relintai/sfw + +Simple c++ app / game framework inspired by the single file c game engines +and libraries, especially [FWK](https://github.com/r-lyeh/FWK). + +**Modules**: Core, Object + +COMPILE +==================================================================================== + +$FILE_Compilation_No_Renderer$ + +CORE +==================================================================================== + +Use SFWCore::setup(); to initialize the library. +This is necessary as some components (Like PoolVector, and StringNames.) need additional setup. + +Use SFWCore::cleanup(); to de-initialize the library. + +Also note that if you don't use classes that doens't rely on this you can get away by not calling it. + + +Initialization +------------------------------------------------------------------ + + +
SFWCore + + |||CLASS_SFWCore||| + +
+ +Enums +------------------------------------------------------------------ + +Errors + + +
Error + +|||ENUM_Error||| + +
+ +Other + + +
ClockDirection + +|||ENUM_ClockDirection||| + +
+ + +
Orientation + +|||ENUM_Orientation||| + +
+ + +
HAlign + +|||ENUM_HAlign||| + +
+ + +
VAlign + +|||ENUM_VAlign||| + +
+ + +
Margin + +|||ENUM_Margin||| + +
+ + +
Side + +|||ENUM_Side||| + +
+ + +
Corner + +|||ENUM_Corner||| + +
+ +Errors and Logging +------------------------------------------------------------------ + + +
Logging + +Use the provided macros: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define PRINT_TRACE(str) +#define LOG_TRACE(...) + +#define PRINT_MSG(str) +#define LOG_MSG(...) + +#define PRINT_WARN(str) +#define LOG_WARN(...) + +#define PRINT_ERR(str) +#define ERR_PRINT(str) +#define LOG_ERR(...) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Error + +Uses these macros: + +Note that the library itself does not use exceptions, it uses these macros exclusively. + +Also note that you are not prevented you from using exceptions if you want to in your own code. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define ERR_FAIL_MSG(msg) + +#define ERR_FAIL_V(val) + +#define ERR_FAIL_V_MSG(val, msg) + +#define ERR_FAIL_INDEX(index, size) +#define ERR_FAIL_INDEX_MSG(index, size, msg) + +#define ERR_FAIL_INDEX_V(index, size, val) +#define ERR_FAIL_INDEX_V_MSG(index, size, val, msg) + +#define ERR_FAIL_COND(cond) +#define ERR_FAIL_COND_MSG(cond, msg) + +#define ERR_FAIL_COND_V(cond, val) +#define ERR_FAIL_COND_V_MSG(cond, val, msg) + +#define ERR_CONTINUE(cond) +#define ERR_CONTINUE_MSG(cond, msg) + +#define ERR_CONTINUE_ACTION(cond, action) +#define ERR_CONTINUE_ACTION_MSG(cond, action, msg) + +#define CRASH_INDEX(index, size) +#define CRASH_BAD_INDEX(index, size) +#define CRASH_BAD_UNSIGNED_INDEX(index, size) + +#define CRASH_COND(cond) +#define CRASH_COND_MSG(cond, msg) + +#define CRASH_MSG(msg) +#define CRASH_NOW(msg) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ + +
Asserts + +Use the provided macros: + +These should be 'free' checks for program flow and should not be needed in any releases, only used when the DEV_ENABLED define is set. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C +#define DEV_CHECK(m_cond) +#define DEV_CHECK_ONCE(m_cond) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +
+ +Math +------------------------------------------------------------------ + + +
Math + +|||CLASS_Math||| + +
+ + +
Vector2i + + |||STRUCT_Vector2i||| + +
+ + +
Rect2i + + |||STRUCT_Rect2i||| + +
+ + +
Color + + |||STRUCT_Color||| + +
+ + +
RandomPCG + + |||CLASS_RandomPCG||| + +
+ +String +------------------------------------------------------------------ + +Helper Structs + + +
CharRange + + |||STRUCT_CharRange||| + +
+ + +
StrRange + + |||STRUCT_StrRange||| + +
+ + +
NoCaseComparator + + |||STRUCT_NoCaseComparator||| + +
+ + +
NaturalNoCaseComparator + + |||STRUCT_NaturalNoCaseComparator||| + +
+ +Character Strings + + +
StaticCString + + You can statically store a C string with this. + + |||STRUCT_StaticCString||| + +
+ + +
Char16String + + 16 bit (wide char) char string. + + |||CLASS_Char16String||| + +
+ + +
CharString + + 8 bit char string. + + |||CLASS_CharString||| + +
+ + +
CharProxy + + Properly stores a reference to an element in a String. + + |||CLASS_CharProxy||| + +
+ +Main + + +
String + + Main String class. This is what you normally use. Stores characters as 32 bit variables. It's COW (Copy on Write). + + If you want to convert this to a char* use it's utf8() method. + + |||CLASS_String||| + +
+ + +
StringName + + A String that is optimized for comparisons using ==. + + |||CLASS_StringName||| + +
+ +Containers +------------------------------------------------------------------ + +Helper Structs + + +
Pair + + |||STRUCT_Pair||| + +
+ + +
KeyValue + + |||STRUCT_KeyValue||| + +
+ + +
Comparator + + |||STRUCT_Comparator||| + +
+ +Helper Classes + + +
CowData + + A helper class that implements COW (Copy-on-Write) functionality. + + |||CLASS_CowData||| + +
+ + +
VectorWriteProxy + + |||CLASS_VectorWriteProxy||| + +
+ +Lists + + +
List + + |||CLASS_List||| + +
+ +Vectors + + +
Vector + + Vector with COW support. + + |||CLASS_Vector||| + +
+ + +
PoolVector + + Vector that does not fragment memory. + + |||CLASS_PoolVector||| + +
+ + +
LocalVector + + Simple vector. Uses unsigned ints as indexes. + + Saves on allocation calls by overallocating memory. + + This is the most similar to std::vector. + + |||CLASS_LocalVector||| + +
+ + +
LocalVectori + + Simple vector. Uses signed ints as indexes. + + Saves on allocation calls by overallocating memory. + + |||CLASS_LocalVectori||| + +
+ + +
TightLocalVector + + Simple vector. Uses unsigned ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVector||| + +
+ + +
TightLocalVectori + + Simple vector. Uses signed ints as indexes. + + Unlike LocalVector it always only allocates the space it needs. + + |||CLASS_TightLocalVectori||| + +
+ +Sets + + +
RBSet + + |||CLASS_RBSet||| + +
+ + +
VSet + + |||CLASS_VSet||| + +
+ + +
HashSet + + |||CLASS_HashSet||| + +
+ +Maps + + +
RBMap + + |||CLASS_RBMap||| + +
+ + +
VMap + + |||CLASS_VMap||| + +
+ +HashMaps + + +
OGHashMap + + Simple HashMap implementation. + + |||CLASS_OGHashMap||| + +
+ + +
HashMap + + HashMap implementation that uses open addressing with Robin Hood hashing. + + Use this by default. + + |||CLASS_HashMap||| + +
+ + +
OrderedHashMap + + HashMap implementation that keeps the order of it's elements. + + |||CLASS_OrderedHashMap||| + +
+ +Special + + +
SortArray + + |||CLASS_SortArray||| + +
+ + +
RingBuffer + + |||CLASS_RingBuffer||| + +
+ + +Files +------------------------------------------------------------------ + + +
FileAccess + + |||CLASS_FileAccess||| + +
+ + +
FileAccessRef + + |||STRUCT_FileAccessRef||| + +
+ + +
DirAccess + + |||CLASS_DirAccess||| + +
+ + +
DirAccessRef + + |||STRUCT_DirAccessRef||| + +
+ +Time +------------------------------------------------------------------ + + +
SFWTime + + |||CLASS_SFWTime||| + +
+ +Threading +------------------------------------------------------------------ + +Thread + + +
Thread + + |||CLASS_Thread||| + +
+ +Atomics + + +
SafeNumeric + + |||CLASS_SafeNumeric||| + +
+ + +
SafeFlag + + |||CLASS_SafeFlag||| + +
+ + +
SafeRefCount + + |||CLASS_SafeRefCount||| + +
+ +Mutex + + +
Mutex + + Typedefined to Mutex. + + |||CLASS_MutexImpl||| + +
+ + +
MutexLock + + Helper class to lock and automatically release it on leaving scope. + + |||CLASS_MutexLock||| + +
+ +RWLock + + +
RWLock + + |||CLASS_RWLock||| + +
+ + +
RWLockRead + + |||CLASS_RWLockRead||| + +
+ + +
RWLockWrite + + |||CLASS_RWLockWrite||| + +
+ +SpinLock + + +
SpinLock + + |||CLASS_SpinLock||| + +
+ +Networking +------------------------------------------------------------------ + +Socket + + +
InetAddress + + |||CLASS_InetAddress||| + +
+ + +
Socket + + |||CLASS_Socket||| + +
+ +Processes +------------------------------------------------------------------ + + +
SubProcess + + |||CLASS_SubProcess||| + +
+ + +
SubProcessRef + + |||STRUCT_SubProcessRef||| + +
+ +Memory +------------------------------------------------------------------ + + +
MemoryPool + + |||STRUCT_MemoryPool||| + +
+ + +
PagedAllocator + + |||CLASS_PagedAllocator||| + +
+ + +
PoolAllocator + + |||CLASS_PoolAllocator||| + +
+ +OBJECT +==================================================================================== + +Object + + +
Object + + |||CLASS_Object||| + +
+ + +
ObjectDB + + |||CLASS_ObjectDB||| + +
+ +Reference + + +
Reference + + |||CLASS_Reference||| + +
+ + +
Ref + + |||CLASS_Ref||| + +
+ +Resource + + +
Resource + + |||CLASS_Resource||| + +
+ +Variant + + +
Variant + + |||CLASS_Variant||| + +
+ + +Variant Containers + + +
Array + + |||CLASS_Array||| + +
+ + +
Dictionary + + |||CLASS_Dictionary||| + +
+ +Utilities + + +
Signal + + |||CLASS_Signal||| + +
+ + +
CoreStringNames + + |||CLASS_CoreStringNames||| + +
+ +ADVANCED +==================================================================================== + +There are a few remaining classes that were omitted from this document (Like allocators, hashers etc.), +as you will normally won't need them. (If you do, you will likely just need to rread the source anyway.) + +LICENSES +==================================================================================== + +SFW + + +
SFW + + MIT + + Copyright (c) 2023-present Péter Magyar. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +
+ +GENERAL + + +
Pandemonium Engine + + MIT + + https://github.com/Relintai/pandemonium_engine + + + Copyright (c) 2022-present Péter Magyar. + + Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). + + Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +
+ + +
FWK + + https://github.com/r-lyeh/FWK + + Unlicense + + This software is released into the [public domain](https://unlicense.org/). + + Also dual-licensed as [0-BSD](https://opensource.org/licenses/0BSD) or [MIT (No Attribution)](https://github.com/aws/mit-0) + for those countries where public domain is a concern (sigh). + + Any contribution to this repository is implicitly subjected to the same release conditions aforementioned. + +
+ +CORE + + +
Trantor + + Trantor + + inet_address.h, .cpp, socket.h and .cpp originates from trantor (they were heavily modified): + + Trantor - A non-blocking I/O based TCP network library, using C++14/17, + Copyright (c) 2016-2021, Tao An. All rights reserved. + + https://github.com/an-tao/trantor + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Tao An nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Muduo - A reactor-based C++ network library for Linux + Copyright (c) 2010, Shuo Chen. All rights reserved. + + http://code.google.com/p/muduo/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Shuo Chen nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +
+ + +
PCG + + pcg.h License: + + *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org + + Licensed under Apache License 2.0 (NO WARRANTY, etc. see website) + +
+ +DOCUMENTATION + + +
Markdeep + + This documentation was generated using markdeep: + + https://casual-effects.com/markdeep + + **Markdeep is open source. You may use, extend, and redistribute Markdeep without charge under the terms of the BSD license:** + + Copyright 2015-2019, Morgan McGuire + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + **Markdeep includes highlight.js, so you are also bound by its BSD license:** + + Copyright (c) 2006, Ivan Sagalaev + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + * Neither the name of highlight.js nor the names of its contributors may be used to + endorse or promote products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ + + + + + +