Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

SkiaGalleryFlow

A Card Stack / Coverflow control prototype for Delphi FMX. Built entirely on Skia4Delphi.

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

SkiaGalleryFlow

A Card Stack / Coverflow control prototype for Delphi FMX. Built entirely on Skia4Delphi.

SkiaGalleryFlow (Async Coverflow v0.1)

Unbenannt

Features:

[ Async Loading Pipeline ]

  • Background Image Decoding : Loads files off the main UI thread.
  • Offscreen Thumbnail Raster : Pre-scales to target size via TSkSurface.
  • Thread-Safe Sync : Safely injects ISkImage back into the UI.
  • Anti-Duplicate Locking : State flags prevent double-loading.
  • Smart Proximity Loader : Spawns threads only for visible items.

[ Rendering Pipeline ]

  • Cached Skia Objects : Reuses ISkPaint to prevent memory overhead.
  • Painter's Algorithm (Z-Order): Sorts slides by offset for correct overlap.
  • Canvas Transformations : Combines Translate, Rotate, Scale in one stack.

[ Animation & Performance ]

  • Idle-Skip Physics : Skips heavy interpolation math if no slide is dirty (IsDirty flag), saving CPU when idle. (0% cpu/gpu)
  • Exponential Interpolation : Frame-rate independent easing.
  • Smooth Alpha Crossfading : Fades old selected out while new glides in.
  • Continuous Render Loop : Dedicated background physics thread.

[ Memory & Layout Management ]

  • Auto-Scale Caching : Clears and reloads thumbnails on form Resize.
  • Critical Sections : Locks arrays to prevent UI/Worker race conditions.

[ Input & Interaction ]

  • Advanced Hit Testing : Differentiates clicks on center vs. side images.
  • Inertia & Velocity : Swipe physics with smooth snap-to-grid.
  • Full Input Support : Keyboard (Arrows, Home/End) and Mouse Wheel.

Sample project and zipped exe included.

pascal
Latest Changes:
pascal
v0.1 (First Release):
  - Implemented async threaded image loading (ported from Flowmotion).
  - Added smart proximity loading (only loads images near scroll center).
  - Added auto-scale resize handling (reloads thumbnails on resize).
  - Added smooth alpha crossfading for selected items.
  - Fixed thread initialization exceptions.