GithubHelp home page GithubHelp logo

ktotheoz / pixellight Goto Github PK

View Code? Open in Web Editor NEW

This project forked from davidlee80/pixellight-1

0.0 0.0 0.0 101.34 MB

PixelLight engine base libraries, core plugins and samples.

License: Other

Python 0.14% CMake 5.38% C++ 86.65% C 6.65% Objective-C 0.57% HTML 0.04% Batchfile 0.01% AngelScript 0.05% JavaScript 0.12% Lua 0.08% Gnuplot 0.01% HLSL 0.12% Shell 0.01% Objective-C++ 0.06% CSS 0.08% Perl 0.03%

pixellight's People

Contributors

cpetry avatar icefirex avatar jschmer avatar thewolfwillcome avatar

Watchers

 avatar  avatar

pixellight's Issues

Reflection Library

Remove old runtime type reflection subsystem (unter PLCore/Base) and replace it with a completely new implementation:

  • MetaType
  • MetaConstructor
  • MetaDestructor
  • MetaMethod
  • MetaProperty
  • MetaOperator
  • MetaAnnotation

RHI Implementation

While the old Renderer system of PixelLight was very powerful and well structured we have to take a step forward. With this release a socalled RHI (Renderer Hardware Interface) will be introduced, which encapsules the concept of rendering from the actual resources, like Materials.

  • Base Interface
  • OpenGL (3,4) Interface
  • OpenGLES3 Interface
  • Vulkan Interface
  • Direct3D10 Interface
  • Direct3D11 Interface
  • Direct3D12 Interface
  • Null Interface

System + Threading

Improved System and Threading implementations:

  • Place old Threading-related classes within new subdirectory 'Threading'
  • Additional classes for System subdirectory: UniqueLock, Error[Category,Code,Condition]
  • Queued Threading
  • Queued Threading Pool + Manager

New Container Implementations

Reimplement the following containers:

  • Array
  • ScopedArray: The same as a ScopedPtr, just for Arrays.
  • LinkedArray: The same as a LinkedPtr, just for Arrays.
  • SharedArray: The same as a SharedPtr, just for Arrays.
  • Stack
  • Vector
  • List
  • Span
  • Deque
  • Queue
  • PriorityQueue
  • Heap
  • SegmentedVector
  • FixedVector: A combination of Array and Vector.
  • HashMap
  • Bitset
  • BitVector
  • Set

New Importer Library

Although the old Loadable implementation is good it does no longer fit to the new architecture (especially when using the new reflection system that is currently planned).

Improve the Importer system by adding a completely threaded implementation.

Integrate PLUtility

Integrate a new library PLUtility, serving the most basic platform dependent classes.

Projects

With the concept of Assets we also should have the concept of Projects. Through this is will become easy to manage different application projects. Furthermore through this one can create own plugins which can then be linked very easy to other projects.

PLDatabase Improvements

Due to the integration of the new project and plugin mechanisms and the small size of PLDatabase it is a good starting point for testing the new integration within the new plugin subsystem.

Reintegrate Samples

The samples are broken for now. After adding new container classes reintegrate all those samples again.

Filesystem Implementation

Further work on a new filesystem implementation:

  • FileStatus
  • FileInfo
  • Directory
  • DirectoryEntry
  • Filesystem
  • Path

Assets

The old implementation of PixelLight does not have a concept of Asset. With this release Assets will be introduced.
Through this one can has Assets which are then compiled for a specific platform during a deployment step.

String Implementation

Remove the old String implementation and integrate a completely new one, more like std::basic_string.

New Renderer Integration

The new design, containing RHI implementations, requires a fully new Renderer implementation. Through this the resources of the renderer are separated from the RHI integration.
In the current implementation it is somehow separated but within a single library. Through this design we have a full separation.

*Ptr Implementations

Add new and updated pointer implementations:

  • AutoPtr
  • RawPtr
  • UniquePtr
  • ScopedPtr
  • IntrusivePtr
  • LinkedPtr
  • SafePtr
  • SharedPtr
  • WeakPtr
  • SmartPtr

PLInput

Improved implementation of PLInput.

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.