Part of #3680
Review for v4 inclusion — evaluate against time constraints and value. This wraps an existing Skia C++ method that disambiguates a currently confusing API.
Summary
Expose SkCodec::isAnimated() (added in Skia m135) which returns a tri-state result: Yes, No, or Unknown. Currently SKCodec.RepetitionCount == 0 is ambiguous — it could mean "not animated" or "unknown" (e.g. partial GIF data).
What exists today
| Layer |
Status |
| C++ |
✅ SkCodec::isAnimated() returns enum {kYes, kNo, kUnknown} |
| C API |
❌ No sk_codec_is_animated |
| C# |
❌ Not exposed. Users rely on RepetitionCount which is ambiguous. |
Proposed changes
- Add
SKCodecAnimationStatus enum (Yes, No, Unknown)
- Add
sk_codec_is_animated() to C API shim (~3 lines)
- Regenerate bindings
- Add
SKCodec.IsAnimated property returning the enum (~5 lines)
- Tests with animated GIF/WebP and static images (~30 lines)
Estimated effort
~2 hours, ~45 lines total.
Part of #3680
Review for v4 inclusion — evaluate against time constraints and value. This wraps an existing Skia C++ method that disambiguates a currently confusing API.
Summary
Expose
SkCodec::isAnimated()(added in Skia m135) which returns a tri-state result: Yes, No, or Unknown. CurrentlySKCodec.RepetitionCount == 0is ambiguous — it could mean "not animated" or "unknown" (e.g. partial GIF data).What exists today
SkCodec::isAnimated()returnsenum {kYes, kNo, kUnknown}sk_codec_is_animatedRepetitionCountwhich is ambiguous.Proposed changes
SKCodecAnimationStatusenum (Yes,No,Unknown)sk_codec_is_animated()to C API shim (~3 lines)SKCodec.IsAnimatedproperty returning the enum (~5 lines)Estimated effort
~2 hours, ~45 lines total.