osudroid / osu-droid

http://osudroid.moe
Apache License 2.0
498 stars 74 forks source link

Upgrade engine to OpenGL ES 2.0 #331

Open Reco1I opened 3 months ago

Reco1I commented 3 months ago

In this PR I replacing the old AndEngine module which was based on OpenGL ES 1.0 branch to the OpenGL ES 2.0 implementation of the same engine. There's some modifications that were re-applied to the engine as well recovery of removed features.

Benefits of the upgrade:

The PR is currently on WIP, I'm working on port things to it. Consider this as a second attempt as the original upgrade was intended and tested with the old rimu! code base which had positive results.

Some notes about modifications made in the module besides the upgrade:

UPDATED 21/3 Things pending to be fixed in order to set this PR as ready:

For reviewers:

Acivev commented 3 months ago

its still missing some files, like here utils/adt/io

Reco1I commented 3 months ago

its still missing some files, like here utils/adt/io

Thanks to point that, I don't know why that is missing since I downloaded the repository from there.

ammarasyad commented 3 months ago

Well this is a surprise.

Acivev commented 3 months ago

since i researched, it's advisable to utilize the AndEngineAnchorCenter instead of the Gles2 branch, as it represents the latest and greatest. May you can look if its right but my guess it is^^

Reco1I commented 2 months ago

since i researched, it's advisable to utilize the AndEngineAnchorCenter instead of the Gles2 branch, as it represents the latest and greatest. May you can look if its right but my guess it is^^

Upgrade to GLES2-AnchorCenter branch requires a major effort because the entity origin (anchor) being the center isn't the only change there. It also changes the whole coordinate system origin from lower-bottom-left to upper-top-left, that is, we have to flip coordinates when placing object as well when calculating vertices for sliders.

And personally I don't think it is the "greatest" since it just only introduces an offset/origin system as difference from the previous. Both are using OpenGL ES 2.0.