Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create beginner friendly HTML tutorials #11

Open
Dawoodoz opened this issue Jul 21, 2020 · 4 comments
Open

Create beginner friendly HTML tutorials #11

Dawoodoz opened this issue Jul 21, 2020 · 4 comments
Assignees
Labels
Big task This can take months to complete and may generate sub tasks. documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@Dawoodoz
Copy link
Owner

Dawoodoz commented Jul 21, 2020

Should be useful for both beginners and advanced users who plans to use the library for learning graphics from the ground up without having to worry about blue-screen-crashes and API-deprecation. Should use the storage space efficiently so that it can be saved together with the library's source code. Still GIF images for large drawings and PNG when more quality is needed. Someone using the library after a few decades will probably not be able to visit a website with a specific URL, but plain HTML documents in a folder can be read as plain text in the worst case.

Planned topics:

  • String system
    • Basic text processing
    • Parsing
  • 2D images
    • Sub-images
    • 2D drawing
    • Tile sets
  • Isometric rendering
    • Passive updates
      • Dirty boxes
      • Passive background and multiple layers
    • Effects
      • Depth buffering
      • Normal mapping
      • Pre-rendering
      • Light sources
        • Phong reflection model
      • Static light techniques
        • Soft light using many sources and blur filters
  • 3D rendering
    • Left handed coordinate system
      X is right, Y is up and Z is forward
      Having Z going forward makes depth buffers easier to think about.
      Telling Blender to export with Y up and Z forward may turn X to the left (which is probably bug in the PLY export script).
    • Depth buffers
    • Cameras
    • Models
    • Textures
      • Pyramid generation
  • Image processing and computer vision
    • Implementing basic image analysis filters
      • Map and image generation using lambdas (Done)
      • Safe image sampling (Done)
      • Thresholding, morphology, distance transforms, integral images
      • Merging multiple filters into one to save time on memory access
    • From reference implementation to extreme performance
      • Safe-pointer abstraction (Done)
      • SIMD instructions and the abstraction layer (Done)
      • Multi-threading and the abstraction layer
  • GUI
    • Creating a window
      • Compilation of Win32 or X11 wrappers
      • Full-screen
    • The visual components and how to use them.
    • Creating custom components.
    • Creating a visual interface layout
      • Relative coordinates
      • Properties
      • *.lof format's syntax
    • Active versus passive interfaces
      • Power saving
    • Mapping commands using lambda expressions
      • Global variables versus capture
      • DSR key codes
  • Storing images
    • Embedding ascii images
    • Saving and loading image files
  • Making a program
    • Compiling and linking
    • Debug versus release modes
    • Different operating systems and processor types
    • Internationalization and multiple interface layouts
  • Making a game
    • Storing your media in a folder, embedding or generating
    • Direct mouse and keyboard input
@Dawoodoz Dawoodoz added documentation Improvements or additions to documentation good first issue Good for newcomers labels Jul 21, 2020
@Dawoodoz Dawoodoz added this to the First stable release milestone Jul 21, 2020
@Dawoodoz
Copy link
Owner Author

The macros for generating methods for different vector types will probably have to be unwrapped for readability, now that they don't change often anymore. Otherwise they would have to be included in documentation instead of headers.

@Dawoodoz
Copy link
Owner Author

Dawoodoz commented Aug 21, 2020

Now that UTF-8 is implemented for text saving, a simple HTML generator for documentation can be written. Automatic parsing of header files can allow adding an overview of the methods to call.

@Dawoodoz
Copy link
Owner Author

The documentation is now generated from text documents, so that the border image is inserted using "---" instead of long HTML code.

@Dawoodoz Dawoodoz added the Big task This can take months to complete and may generate sub tasks. label Aug 23, 2020
@Dawoodoz Dawoodoz self-assigned this Aug 24, 2020
@Dawoodoz
Copy link
Owner Author

Dawoodoz commented Mar 1, 2024

Documenting the build systems and things that often go wrong in C++ should probably take priority over advanced topics, because everyone needs their project to build. Syntax of the build files, why there are two build systems, linking with external libraries, why you should not change a source document between taking its checksum and giving it to the compiler, et cetera...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Big task This can take months to complete and may generate sub tasks. documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant