As a 2020 New Year’s Resolution to myself, I decided that I should do more open-source hobbyist programming. One thing that I’ve wanted is to have a personal library/reusable code that will help facilitate my ideas and other personal projects. To do this, I’ve decided to develop a cross-platform rendering engine that uses DirectX12 and Vulkan graphics APIs, as although I’ve got concrete understandings of these APIs, I don’t have anything on my personal portfolio. This is being done entirely in my spare time (mostly weekends) so there is no strict deadlines to when I get features complete. I will take the approach of implementing as generic as I can from the get-go, so when I need to implement a new platform/graphics API, it should ideally be “implement the stubs” with little refactoring (ofcourse that’s the best case outcome!). Antoher approach I am taking is to develop the core libraries as and when I need, instead of implementing things like containers without a use case to test it.

Development started on: 19/01/2020

The BitBucket link below, goes to the public repo.

Current Progress

The current completed or in-progress development:

  • Platform and Windows:
    • Agnostic Window Creation
      • Win32
  • Containers, Patterns and Models:
    • Finite State Machine
    • Singleton Wrapper
    • Custom RTTI
  • Graphics API:
    • Agnostic Adapter Manager 
      • Direct3D 12
    • Driver
      • Direct3D 12 (Initial)
  • Algorithms:
    • Quick Sort, Bubble Sort, Merge Sort, Bogo Sort
    • Linear Search, Binary Search
  • String:
    • Utils
  • Maths:
    • Vector 2/3/4 (Float & SSE intrinsics)
    • RNG Helper
    • Utils

Goals

The current thought out goals for the project:

  • Vulkan Support
  • Linux and Android Support
  • Cross-Platform:
    • Threading
  • Maths Library:
    • Matrix
    • Geometry 
  • Dear ImGui Support
  • Resource Support
    • Bitmap and TIFF loading/saving
    • OBJ
  • Optic Profiler Support

Media

Coming Soon

Source Repo

Bitbucket