Progress of graphics backend integration

Should say, that it is very good idea to accomodate all needed rendering information in one place. It should be very lightweight. I really wait your progress! Good luck!

Update:

  • all label effect works without underline effect
  • particles system works
  • some tilemap effect works
3 Likes

Update:

  • rendertexture without saving image support
  • effects(grid3d and tiled grid) works
  • transition works
  • almost all UI components work(it is not merged, in testing)
  • draw node works(not merged, in review)
2 Likes

Awesome, keep it going! By the way: is there much left to do? Do you have some sort of list?

1 Like

Most of 2D features are supported, spine and 3d feature is not started.

Update:

  • draw node merged
  • add UI back, some tests works
  • clipping node works without alpha test

Update:

  • iOS uses metal too
  • Android and windows can work, but use cmake instead
  • progress timer support radial
  • support scissor

I will send a PR to cocos2d-x for metal-support, then developers can join the development. I don’t know if we can call it v4, but it breaks something. I will name it metal-support currently.

After supporting spine, i will release a alpha version. Then we will continue to support 3D features and fixing bugs.

3 Likes

Awesome. Motion Streak implemented?

Not yet, it is quick to support it.

@kiranb47 motion steak is supported.

ok great. We will also start testing when alpha version is available.

update:

  • fast tilemap works
  • fix depth test issue
  • physics test works
  • can show stats information
  • improve performance of layer/progress timer
  • custom command supports index format
  • correct synchronization between CPU/GPU in metal
  • spine supports, because it will break spine runtime license, so we will not merge it before it is accepted by spine author, you can merge the PR manually to have a try.

Refactor uniform setting to improve performance will be finished in days. After that, i will sync all the codes to official repo, then release an alpha version. So the alpha version will be released in this week without 3D features.

1 Like

There may be an issue with that. If the changes are merged in, wouldn’t it break Spine for the current Cocos2d-x 3.17.1 and lower versions? If that is the case, then there needs to be preprocessor checks added anywhere the code would cause issues with the currently released versions of Cocos2d-x, otherwise there would need to be a completely separate release of the Spine runtime for the new Cocos2d-x.

Side-note: Spine now have a cpp runtime available, and will no longer update the cocos2d-x C version going forward (they will maintain it, but they will not add new features). The spine-cpp runtime is now the default to use for Cocos2d-x. More info here: http://esotericsoftware.com/blog/Spine-3-7-released#Spine-cpp

We discussed it with spine author, and it will be in a new folder, it will not affect spine-c/spine-cpp.

is mac version working fine with metal support and how much performance improvement I can expect from it?

We haven’t focused performance currently. As simple testing, currently, there is not performance improvement, just the same as before. After uniform setting modification, i think it will have about 10% performance improvement. We will focus on performance improvement after finishing metal integration.

2 Likes

Because of the delay of refactor uniform setting, we could not release alpha0 version last week. Sorry about that. We will try to release it in this week.

1 Like

Alpha0 version is released. I created a new topic for it.

‘deprecated/CCArray.h’ file not found Error