
 /* SV_ShowSubs.c
    - displaying GfxBuffers via SVDrivers -
    (c) 1993-95 by Andreas R. Kleinert
    Last changes : 22.07.1995
 */

#include "svobject.h"

ULONG __saveds __asm SVO_Show( register __a1 struct SVObjectHandle *SVObjectHandle_a1);


extern void __saveds __stdargs SVLI_SetSVDriver(struct SVObjectHandle *SVObjectHandle);

ULONG __saveds __asm SVO_Show( register __a1 struct SVObjectHandle *SVObjectHandle_a1)
{
 struct SVObjectHandle *SVObjectHandle = SVObjectHandle_a1;
 ULONG retval = SVERR_NO_ERROR;

 if(!SVObjectHandle) return(SVERR_NO_HANDLE);

 if(!SVObjectHandle->ah_SV_GfxBuffer)
  {
   retval = SVO_ReadToGfxBuffer(SVObjectHandle);
   if(retval) return(retval);
  }

 if(!SVObjectHandle->ah_SV_GfxBuffer) return(SVERR_NO_MEMORY);

 SVLI_SetSVDriver(SVObjectHandle);

 if(SVObjectHandle->ah_SVDriverHandle)
  {
   struct SVDriverBase *SVDriverBase = SVObjectHandle->ah_DriverBase;

               retval = SVD_SetGfxBuffer(SVObjectHandle->ah_SVDriverHandle, SVObjectHandle->ah_SV_GfxBuffer, N);
   if(!retval) retval = SVD_DisplayGfxBuffer(SVObjectHandle->ah_SVDriverHandle, N);

   return(retval);
  }

 return(SVERR_NO_DRIVER_AVAILABLE);
}
