Skip to content

Commit

Permalink
updated from dagor4 repo on 2024/01/02, rev 0f4c1be78fa2b01c02165a49c…
Browse files Browse the repository at this point in the history
…539bb70e37fdc56
  • Loading branch information
NicSavichev committed Jan 2, 2024
1 parent c08ebb8 commit 7df9611
Show file tree
Hide file tree
Showing 2,148 changed files with 194,475 additions and 36,608 deletions.
14 changes: 14 additions & 0 deletions .engine.qdox
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//this is json with single line comments supported
// QDox config file
[
{
"paths": ["prog/engine/lib3d/picMgr.cpp","prog/engine/image/decodeFnameSuffix.h"], //folders or files list, required,
"doc_chapter": "picture_image", //internal folder name, required
"chapter_desc": "Picture Manager documentation", //displayed title, optional
"chapter_title": "Dagor Engine Libraries", //displayed title, optional
"extensions": [".cpp",".h"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
}
]
103 changes: 103 additions & 0 deletions .quirrel_modules.qdox
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
//this is json with single line comments supported
// QDox config file
[
{
"paths": ["prog/gameLibs"], //folders or files list, required,
"doc_chapter": "quirrel-modules/quirrel_gamelibs", //internal folder name, required
"chapter_desc": "Docs for Quirrel modules extracted from source in gameLibs", //displayed title, optional
"chapter_title": "Quirrel Gamelibs Native Modules", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/gameLibs/ecs/scripts"], //folders or files list, required,
"doc_chapter": "quirrel-modules/quirrel_daECS", //internal folder name, required
"chapter_desc": "Docs for Quirrel modules for dagor ECS", //displayed title, optional
"chapter_title": "Quirrel ECS", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/gameLibs/daRg"], //folders or files list, required,
"doc_chapter": "quirrel-modules/darg_framework", //internal folder name, required
"chapter_desc": "Docs for DaRG - Dagor Reactive GUI framework, based on Quirrel language and FRP.", //displayed title, optional
"chapter_title": "daRg framework", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/tools/dargbox"], //folders or files list, required,
"doc_chapter": "dargbox", //internal folder name, required
"chapter_desc": "Docs for DargBox - darg utlitiy application and sandbox.", //displayed title, optional
"chapter_title": "dargbox", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/daNetGameLibs"], //folders or files list, required,
"doc_chapter": "quirrel-modules/daNetGameLibs", //internal folder name, required
"chapter_desc": "Docs for daNetGameLibs Quirrel Modules. DaNetGameLibs can be used in any daNetGame based project", //displayed title, optional
"chapter_title": "daNetGameLibs", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/daNetGame"], //folders or files list, required,
"doc_chapter": "quirrel-modules/daNetGame", //internal folder name, required
"chapter_desc": "Docs for daNetGame Quirrel Modules. DaNetGame is framework for building games", //displayed title, optional
"chapter_title": "daNetGame", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["launcher/client/scilauncher2/src"], //folders or files list, required,
"doc_chapter": "quirrel-modules/scilauncher2", //internal folder name, required
"chapter_desc": "Sciter Launcher2", //displayed title, optional
"chapter_title": "Sciter Launcher2 API", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["skyquake/prog"], //folders or files list, required,
"doc_chapter": "quirrel-modules/skyquake_native", //internal folder name, required
"chapter_desc": "Docs for Skyquake based Quirrel Modules. VRT, WTM and WT are based on Skyquake", //displayed title, optional
"chapter_title": "skyquake native modules", //displayed title, optional
"extensions": [".cpp"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
},

{
"paths": ["prog/gameLibs/soundSystem/quirrel"], //folders or files list, required,
"doc_chapter": "quirrel-modules/soundSystem", //internal folder name, required
"chapter_desc": "Docs for soundSystem Quirrel Modules. DaNetGameLibs can be used in any daNetGame based project", //displayed title, optional
"chapter_title": "soundSystem", //displayed title, optional
"extensions": [".cpp",".inl"], //optional, list of extensions of files
"exclude_dirs_re": [], //optional, list of regexps that should full match to exclude dirs in recursive search
"exclude_files_re": [], //optional, list of full match regexp to skip files'
"recursive": true //optional, do recursive search for folders'
}

]
2 changes: 1 addition & 1 deletion DagorEngine.rev.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5c60bace2d9f412c90ae821004b0c3ee648309e7
0f4c1be78fa2b01c02165a49c539bb70e37fdc56
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,25 @@ X:\develop\DagorEngine\samples\testGI\game
To build the "testGI" sample, navigate to the X:\develop\DagorEngine\samples\testGI\prog folder and run the "jam" command. After building, the executable file will be placed in the testGI\game folder.

Run DagorEngine/build_all.cmd to build the entire project toolkit from the source code. This process may take a considerable amount of time.

## Open-source roadmap

We are going to open-source more parts of our Engine and tools.
These are general and broad plans for next year, can be changed.

### Documentation

* dagor render
* how to work with dagor assets
* dagor level editor
* dagor reactive gui framework

### Basic dagor samples

* Binaries of basic render and game samples (terrain, clouds, water, grass; inputs and controls) with assets sources
* Sources of basic game samples

### The Pretty Games framework

Framework with samples and documentation, based on daslang and dagor.
Details yet to come.
19 changes: 19 additions & 0 deletions _docs/.readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.9"
jobs:
pre_build:
- python3 _docs/build_all_docs.py

python:
install:
- requirements: _docs/requirements.txt


sphinx:
configuration: _docs/conf.py

formats: all
12 changes: 12 additions & 0 deletions _docs/_static/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.toggle .header {
display: block;
clear: both;
}

.toggle .header:after {
content: " ▶";
}

.toggle .header.open:after {
content: " ▼";
}
14 changes: 14 additions & 0 deletions _docs/_templates/page.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{% extends "!page.html" %}

{% block footer %}
<script type="text/javascript">
$(document).ready(function() {
$(".toggle > *").hide();
$(".toggle .header").show();
$(".toggle .header").click(function() {
$(this).parent().children().not(".header").toggle(400);
$(this).parent().children(".header").toggleClass("open");
})
});
</script>
{% endblock %}
17 changes: 17 additions & 0 deletions _docs/build_all_docs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import sys
import os
import subprocess

_DIR = os.path.dirname(os.path.realpath(__file__))
def shell(cmd):
subprocess.check_call(cmd, shell=True, stdout=sys.stdout, stderr=subprocess.STDOUT, bufsize=1, universal_newlines=True)

def main():
prevd = os.getcwd()
os.chdir(os.path.join(_DIR, ".."))
shell(["python3", "_docs/qdoc_main.py", "-o", "_docs/source/quirrel-modules", "-c", ".quirrel_modules.qdox", "-t", "Quirrel Modules Docs"])
shell(["python3", "_docs/qdoc_main.py", "-o", "_docs/source/dagor-engine-docs", "-c", ".engine.qdox", "-t", "Engine Libraries Docs"])
os.chdir(prevd)

if __name__ == "__main__":
main()
67 changes: 67 additions & 0 deletions _docs/cfg.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import re
import json
cmt = re.compile(r"(.*)\/\/.*")

def read_commented_json(fpath):
with open(fpath, "rt", encoding="utf-8") as f:
data = f.read()
data = data.splitlines()
res = []
for line in data:
c = cmt.search(line)
if c:
res.append(line.split("//")[0])
else:
res.append(line)
return json.loads("\n".join(res))

def validated_qdox_cfg(config):
all_cfg = []
for e in config:
paths = e.get("paths")
doc_chapter = e.get("doc_chapter")
recursive = e.get("recursive", False)
exclude_dirs_re = e.get("exclude_dirs_re", [""])
chapter_desc = e.get("chapter_desc", "")
exclude_files_re = e.get("exclude_files_re", [""])
chapter_title = e.get("chapter_title", doc_chapter.replace("_", " "))
extensions = e.get("extensions", [""])
if not isinstance(doc_chapter, str):
log.error("no 'doc_chapter' in given config or it is not string")
log.error(config)
continue
if not isinstance(extensions, list):
log.error("'extensions:[]' in given config is not list")
extensions = [""]
if not isinstance(paths, list):
log.error("no 'paths:[]' in given config or it is not list")
log.error(config)
continue
if not isinstance(exclude_dirs_re, list):
log.warning("no 'exclude_dirs_re:[]' in given config is not list, skipping it")
exclude_dirs_re = [""]
if not isinstance(exclude_files_re, list):
log.warning("no 'exclude_files_re:[]' in given config is not list, skipping it")
exclude_files_re = [""]
if not isinstance(chapter_title, str):
log.warning("'chapter_title' in given config is not string, skipping it")
chapter_title = doc_chapter.replace("_"," ")
if not isinstance(chapter_desc, str):
log.warning("'chapter_desc' in given config is not string, skipping it")
chapter_desc = ""
if not isinstance(recursive, bool):
log.warning("'recursive' in given config is not boolean, skipping it")
recursive = True

all_cfg.append({
"paths":paths,
"extensions":extensions,
"doc_chapter":doc_chapter,
"recursive": recursive,
"exclude_dirs_re":exclude_dirs_re,
"exclude_files_re":exclude_files_re,
"chapter_desc":chapter_desc,
"chapter_title":chapter_title
})
return all_cfg

Loading

0 comments on commit 7df9611

Please sign in to comment.