pomdog icon indicating copy to clipboard operation
pomdog copied to clipboard

Integrate experimental library into core library

Open mogemimi opened this issue 6 years ago • 0 comments

I have the following plan:

  • Reimplement some experimental library, such as sprite renderer, shape/primitive renderer, easings, particle system, post effects and font renderer.
  • Integrate experimental library (e.g. libpomdog_experimental.a) into core library (e.g. libpomdog.a). Btw, some libraries have already been moved into include/Pomdog/Experimental.
  • Remove the obsolete Pomdog.Experimental library.

The current repository structure is the following,

- experimental/Pomdog.Experimental/ (= included in `libpomdog_experimental.a`)
  - Particle2D/
  - Skeletal2D/
  - ...
- include/Pomdog/Experimental/ (= included in `libpomdog.a`)
  - Graphics/
  - Image/
  - TexturePacker/

the old experimental library will be removed in the future as follows.

- include/Pomdog/Experimental/
  - Graphics/
  - Image/
  - Particle2D/
  - Skeletal2D/
  - TexturePacker/
  - ...

Progress / TODOs

  • [x] Support Metal fully using preset shaders
    • https://github.com/mogemimi/pomdog/commit/f63ba4b5c8cf4af5990b8e03564eac111e69885a
    • https://github.com/mogemimi/pomdog/commit/e1f5fbfeb3d300de2232e6bb60cdbd4712099da9
    • https://github.com/mogemimi/pomdog/commit/3c4f69f233a585732467b56aebb387a6aeb48a43
    • https://github.com/mogemimi/pomdog/commit/7a4cb1c41dbbd37164c11393ba124f3535cdf918
    • https://github.com/mogemimi/pomdog/commit/29a666902d2dfa13effb74b6e427038ad9c5f4f1
    • https://github.com/mogemimi/pomdog/commit/afae4d3c29f56a9b61ea7d80dc7b8b2aaa181dd5
    • https://github.com/mogemimi/pomdog/commit/466f8c915fc3cb62520629e187b941385e1c3aaf
  • [ ] Reimplementation
    • [x] Sprite batch renderer (https://github.com/mogemimi/pomdog/pull/30)
      • [x] Emulate glDrawArraysInstancedBaseInstance and glDrawElementsInstancedBaseInstance on OpenGL <= 4.1 for Mac (https://github.com/mogemimi/pomdog/commit/57a1c94591cd75f839cd8e14f2ae60984318ec1f)
      • [x] Optimization
      • [x] Resign API (https://github.com/mogemimi/pomdog/pull/30)
      • [x] Unify SpriteBatchRenderer and SpriteBatch (https://github.com/mogemimi/pomdog/pull/30)
    • [ ] TrueType font renderer
      • [ ] Optimization: Change surface format from RGBA8888 to R8
    • [ ] Primitive/shape renderer
    • [ ] Easings
    • [ ] Actions
    • [ ] Particle System 2D
    • [ ] Simple 2D Game Engine
  • [ ] Integrating experimental library into core library.
    • [x] Moving Sprite, Primitive, Font features (https://github.com/mogemimi/pomdog/commit/5c4fbd3cd6d26e8e4456fd096622145c600087ef)
    • [ ] Particle System 2D
    • [x] MagicaVoxel exporter/importer (https://github.com/mogemimi/pomdog/commit/fcef973cead3869cb04794c9b0db38e068be2bc5)
    • [x] Easings (https://github.com/mogemimi/pomdog/commit/f68e14f936f6f18709d6e2de16b37ec4b2b51629)
    • [ ] Skeletal Animation, Skinned Mesh 2D
    • [ ] Entity-component system
  • [ ] Removing the obsolete Pomdog.Experimental library.

mogemimi avatar Aug 06 '18 19:08 mogemimi