The proxy class encapsulates the logic for managing alternate SurfaceData representations of a primary SurfaceData. The main class will handle tracking the state changes of the primary SurfaceData and updating the associated SurfaceData proxy variants.
Subclasses have 2 main responsibilities:
- Override the isSupportedOperation() method to determine if a given operation can be accelerated with a given source SurfaceData
- Override the validateSurfaceData() method to create or update a given accelerated surface to hold the pixels for the indicated source SurfaceData
If necessary, a subclass may also override the updateSurfaceData method to transfer the pixels to the accelerated surface. By default the parent class will transfer the pixels using a standard Blit operation between the two SurfaceData objects.