mono / SkiaSharp

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
MIT License
4.49k stars 538 forks source link

[BUG] TODO #1652

Open mattleibow opened 3 years ago

mattleibow commented 3 years ago

Description

  1. SkCamera.h and SkMatrix44.h are DEPRECATED. Use SkM44 if you want to have 3d transformations.

  2. GrContext::createBackendTexture functions that initialize the texture no longer guarantee that all the data has been uploaded and the gpu is done with the texture. Instead the client can assume the upload work has been submitted to the gpu and they must wait for that work to finish before deleting the texture. This can be done via their own synchronization or by passing in a finish proc into the create calls which will be called when it is safe to delete the texture (at least in terms of work done during the create). https://review.skia.org/286517

  3. Add api on GrContext, updateBackendTexture that will upload new data to a GrBackendTexture. https://review.skia.org/288909

  4. Added GrContext::oomed() which reports whether Skia has seen a GL_OUT_OF_MEMORY error from Open GL [ES] or VK_ERROR_OUTOF*_MEMORY from Vulkan. https://review.skia.org/298216

  5. GrContext::abandoned()

gmurray81 commented 3 years ago

BTW, I think

GrContext::abandoned()

would help with #1573 and #1642

since I didn't see a SkiaSharp level way to tell if another SKSwapChainPanel had abandonded the resources for a GrContext. But I'm not sure the current abandon behavior is appropriate anyhow?

taublast commented 2 weeks ago

Not really a bug but imperative for skiasharp v3?..

mattleibow commented 1 week ago

For this, we have them mostly done:

  1. We have the SKMatrix44 now
  2. We can add this overload later if it is needed as it is additive
  3. Not sure we need this API, if we do, we can add it later
  4. We can add this later if there is a need
  5. This has been added already

We have some and the others are new APIs that we can add later.

mattleibow commented 1 week ago

Was there any specific item you needed?