Giter VIP home page Giter VIP logo

flaxdocs's Introduction

Flax Engine Documentation

Flax Engine Docs

Welcome to the Flax documentation repository. This repository contains all the source files for the Flax documentation (https://docs.flaxengine.com/). Anyone is welcome to contribute!

Editing

We use DocFX tool for building and hosting documentation online. It supports markdown style files (.md) as it's a very standardized and popular format. Writing technical documentation using markdown style is easy and efficient.

To edit docs we recommend you to use tools such as Zettlr or Typora or Visual Studio Code.

Building and Testing

Documentation can be built and hosted on both Linux and Windows. DocFx can run on .Net or Mono. By default the site is hosted on localhost:8080 but this can be easily configured.

Windows

  • Download repository (or clone with git clone https://github.com/FlaxEngine/FlaxDocs.git)
  • Call build_manual.bat to build the Manual or build_all.bat to build whole documentation (with API) but it will take more time to finish
  • Call run_local_website.bat to preview the site

Linux

  • Install Mono
  • Clone repository (git clone https://github.com/FlaxEngine/FlaxDocs.git)
  • Call chmod +x docs.sh. It will modify permissions for the script docs.sh to allow to execute it
  • Call ./docs.sh rebuild

Technical Notes

C# and C++ API reference pages are generated by downloading and building engine at a given revision specified in file commit.txt. C# API is extracted via docfx metadata into api folder. C++ API is extracted via our custom fork of code2yaml which parses engine header files with doxygen to generate metadata into api-cpp folder.

Key configuration files:

  • docfx.json - config for docfx documentation building.
  • code2yaml.json - config for code2yaml used to extract api docs for C++.
  • doxyfile - config for doxygen to output xml files with engine api to be processed by code2yaml.
  • commit.txt - contains commit hash of the FlaxEngine revision to use for the API building.
  • .github\workflows\docs-publish.yml - Github Actions workflow triggered on git tag update-<version> that builds whole docs with api and publishes them to FlaxDocsHost for static hosting on Github Pages.
  • .github\workflows\docs-build.yml - Github Actions workflow triggered on push/pr that builds manual without api to verify the integrity of the modified docs (eg. warns about invalid links or missing files).

Licensing

Creative Commons License
FlaxDocs is licensed under a Creative Commons Attribution 4.0 International License.

flaxdocs's People

Contributors

abrasivetroop avatar bolognatic avatar brbrmensch avatar clawthorn avatar galbi3000 avatar gasimocodes avatar herocrab avatar honzapatcz avatar iainmckay avatar jb-perrier avatar jfaz13 avatar m-3-h avatar mafiesto4 avatar minebill avatar minhct avatar molodoy-chelovek avatar mrunion avatar muchaszewski avatar mxruben avatar nordonoscillius avatar nothingtvatyt avatar nove1398 avatar rkrahn avatar stefnotch avatar tesla-j avatar tryibion avatar w2wizard avatar withaust avatar wolfos avatar xxseys1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flaxdocs's Issues

[Bug] Copy button in docs doesn't work

I don't know if this is the appropriate place to open this issue if not feel free to close the issue.

Problem is that copy chapter link button doesn't work.

image

Document screen/client/local space

jb-perrier fixed the flashing tooltips on high DPI screens. I took a look at it and realized that I don't get why it was wrong before and why it's correct now. So I went ahead, dug through the source code and hopefully understand it correctly.

To save other developers the trouble of figuring it out themselves, I think we should document it. Where should I place the following documentation? (after cleaning it up a bit more)

Answer: maybe inside UI as subpage?

  • UI Coordinates, UI Windows, UI Control --> Transform, ...

Documentation (still needs to be fixed up)

On the low level end of things https://github.com/FlaxEngine/FlaxEngine/blob/be1b9857f9d219811febf18e144fa4d1e63ca9fa/Source/Engine/Platform/Windows/WindowsWindow.cpp#L384-L393, the size is "correct", as in, a monitor pixel is exactly one UI pixel.

However, when translating that into something for an application (UI system), you have to take care of the DPI scale (≥ 1). With a DPI scale of two, UI pixels are twice as large as the monitor pixels.

Screen space: No DPI applied, stretches across all monitors

  • e.g. Input.MouseScreenPosition
    Warning: Input.MousePosition only works with the game window

Window space:

  • Offset (window)
  • Divided by DPI

Local control space:

  • e.g. FlaxEngine/Source/Engine/Platform/Window.cs --> Internal_OnMouseMove
  • Offset to the correct client-window
  • Divided by DPI
  • Offset to the correct control

Wish to add more details about the platform sdks

For example ,i'm reading the docs of platform/uwp, it mentioned that it need the v141(2017),
but didn't talk about the specific tool to install in visualstudio.

I checked the vs installer , there are several kinds including c++ tool with spectre、MSVC c++ tool.

Relicense to CC BY 4.0

Relicensing

The FlaxDocs repository currently is all rights reserved.[1]

This is a problem, and we'd like to ask you for permission to change the license to the very permissive Creative Commons Attribution 4.0 International.

Pinging @mafiesto4 @stefnotch @herocrab @W2Wizard @bolognatic @Withaust @MinhCT @jb-perrier @iainmckay @Wolfos @mxruben @honzapatCZ @NordonOscillius @Galbi3000 @mlavik1 @realDLPS @tom-weiland @nothingTVatYT @nove1398 @molodoy-chelovek @brbrmensch @Clawthorn @GoaLitiuM @Evildea @iliyalb @jfaz13 @Muchaszewski , since you contributed to this repository. Thank you very much for improving the documentation by the way! <3

If you're fine with changing the license, please respond to this issue.

More info, feel free to skip this section

Disclaimer: I'm not a laywer, the following is just my very limited understanding of the rules. Please actually ask a lawyer when you have legal questions.

In most countries (jurisdictions), when you create something, you own it. (copyright)
For anyone else to view it, or to change it, or similar, they have to get your permission. (lots of exceptions)

The reason why things can be put onto GitHub, and why other people can look at it, is because of their Terms of Service. The GitHub ToS basically says "you uploaded public code to GitHub, now GitHub is allowed to display the code".

Most projects actually want people to be able to use their work, to contribute and more. For example, it should be possible to copy-paste a snippet of the documentation and put it into your code. This is why nearly every project has a license. A license is the legal document that actually allows you to do certain things, as long as you follow the rules.

The FlaxDocs repository doesn't have LICENSE file or anything. This means that the default still applies, where everyone owns their contributions. (all rights are reserved). This is not ideal. We'd like to fix that, by changing the license to the very open CC BY 4.0 license. That effectively means that

  • Anyone will be able to contribute to the documentation, same as before.
  • Anyone will be able to use the documentation, cite it, tweak it, as long as they give appropriate credit. This is an issue at the moment.

Remove the snarky comments from the "Flax for X developers" pages.

Once i found out about Flax, the first thing i did was to look in the documentation for a starting out guide. However, seeing this:
image
left a really bad taste in my mouth. I get that it is a small joke but when it's the first thing a potetional user might see, imho it makes Flax look unprofessional for throwing shade at other engines. These pages should focus on making a great first impression and teaching a new user how to use the engine.

Update VSCode instructions

https://docs.flaxengine.com/manual/scripting/debugging/visual-studio-code.html is outdated, since Microsoft is working on some new C# extensions

C# Dev Kit builds on the same foundations as Visual Studio for some of its functionality, it uses the same license model as Visual Studio. This means it's free for individuals, as well as academia and open-source development, the same terms that apply to Visual Studio Community. For organizations, the C# Dev Kit is included with Visual Studio Professional and Enterprise subscriptions, as well as GitHub Codespaces. For full terms and details see the license terms.

C++ Scripting JSON serialization expansion

Current JSON example only showcases extremely basic string serialization of an arbitrary object, without even showing what you are supposed to do with the resulting CompactJsonWriter. Here is how this needs to be extended:

Serialization

  1. Demonstrate usage of compact/pretty writer
  2. Demonstrate saving to the file

Deserialization

  1. Demonstrate loading of an arbitrary JSON file
  2. Demonstrate deserialization of an arbitrary scripting/scene object

Spelling correction

In your docs you use "builded" as the past tense of build, this is incorrect. The correct word is "built".
I'd make the corrections myself and submit them but I have never done that sort of thing in GitHub, still rather noob at it other than cloning projects.

Suggestion: Add Dark theme

I'm working on Flax at 3am...
i have a doubt...
i go to documentation...
LIGHT THEME

O MY GOD I'M BLIND

pls add dark theme :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.