From fc1020fa2ce9a0043155754afdd4b648344e3510 Mon Sep 17 00:00:00 2001 From: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Thu, 31 Oct 2019 19:15:22 +0200 Subject: [PATCH] [skip travis] Various cleanup --- docs/source/Makefile | 197 ------------------------------ docs/source/conf.py | 20 --- docs/source/tools/makerst.py | 4 + libgdtl/plugin.cfg | 4 +- logo_inv.png | Bin 0 -> 12696 bytes src/resources/tl_dynamic_font.cpp | 17 --- 6 files changed, 6 insertions(+), 236 deletions(-) delete mode 100644 docs/source/Makefile create mode 100644 logo_inv.png diff --git a/docs/source/Makefile b/docs/source/Makefile deleted file mode 100644 index eb8cb71..0000000 --- a/docs/source/Makefile +++ /dev/null @@ -1,197 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build -LATEXDEPS = latex dvipng - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD make variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# check for latex dependencies -E := $(foreach exec, $(LATEXDEPS),\ - $(if $(shell which $(exec)), some string,$(warning The $(exec) command was not found: math formulas will not be built. LaTeX is required for math formula support. If you don't have LaTeX installed, grab it from https://www.latex-project.org/get/))) - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) -t i18n . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GodotEngine.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GodotEngine.qhc" - -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/GodotEngine" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GodotEngine" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex -D 'pygments_style=sphinx' - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) ../sphinx/templates - @echo - @echo "Build finished. The message catalogs are in ../sphinx/templates." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/source/conf.py b/docs/source/conf.py index a774de7..0d30ab9 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# -# Godot Engine documentation build configuration file import sys import os @@ -46,14 +44,9 @@ # -- Options for HTML output ---------------------------------------------- -# on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org -on_rtd = os.environ.get('READTHEDOCS', None) == 'True' - import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -if on_rtd: - using_rtd_theme = True # Theme options html_theme_options = { @@ -66,11 +59,6 @@ # 'navigation_depth': 4, # Depth of the headers shown in the navigation bar } -# VCS options: https://docs.readthedocs.io/en/latest/vcs.html#github -html_context = { - "display_github": False, # Integrate GitHub -} - html_logo = 'img/docs_logo.png' # Output file base name for HTML help builder @@ -101,11 +89,3 @@ linkcheck_anchors = False linkcheck_timeout = 10 - -# -- I18n settings -------------------------------------------------------- - -locale_dirs = ['../sphinx/po/'] -gettext_compact = False -# Exclude class reference when marked with tag i18n. -if tags.has('i18n'): - exclude_patterns = ['classes'] diff --git a/docs/source/tools/makerst.py b/docs/source/tools/makerst.py index cef6058..7eae805 100644 --- a/docs/source/tools/makerst.py +++ b/docs/source/tools/makerst.py @@ -6,6 +6,10 @@ import xml.etree.ElementTree as ET from collections import OrderedDict +#This file is based in part on Godot's BitmapFont implementation, licensed under MIT license. +#For more information, see https://github.com/godotengine/godot/blob/master/LICENSE.txt +#For original source, see https://github.com/godotengine/godot/blob/master/doc/tools/makerst.py + # Uncomment to do type checks. I have it commented out so it works below Python 3.5 #from typing import List, Dict, TextIO, Tuple, Iterable, Optional, DefaultDict, Any, Union diff --git a/libgdtl/plugin.cfg b/libgdtl/plugin.cfg index b94b1d0..a2f654c 100644 --- a/libgdtl/plugin.cfg +++ b/libgdtl/plugin.cfg @@ -1,7 +1,7 @@ [plugin] name="gdtl" -description="" +description="BiDi, shaping and basic text layout for Godot Engine." author="" -version=0.1 +version=0.4 script="gdtl.gd" \ No newline at end of file diff --git a/logo_inv.png b/logo_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7a72619aa70d96b93cbcf44e14cc3b4c450aaa GIT binary patch literal 12696 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 TLDynamicFontFaceAtSize::unicode_scripts_supported() const { - //DEBUG - /* - for (int i = 31; i >= 0; i--) - printf("%s", ((os2->ulUnicodeRange1 >> i) & 1) ? "+" : "-"); - printf(" "); - for (int i = 31; i >= 0; i--) - printf("%s", ((os2->ulUnicodeRange2 >> i) & 1) ? "+" : "-"); - printf(" "); - for (int i = 31; i >= 0; i--) - printf("%s", ((os2->ulUnicodeRange3 >> i) & 1) ? "+" : "-"); - printf(" "); - for (int i = 31; i >= 0; i--) - printf("%s", ((os2->ulUnicodeRange4 >> i) & 1) ? "+" : "-"); - printf("\n"); - */ - //DEBUG - //https://freetype.org/freetype2/docs/reference/ft2-truetype_tables.html#tt_ucr_xxx std::vector ret;