topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-CMAcceleration.h / h



  /*
       File:       CMAcceleration.h
   
       Contains:   ColorSync Acceleration Component API
   
       Version:    Technology: ColorSync 2.0
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1995-2001 by Apple Computer, Inc., all rights reserved.
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __CMACCELERATION__
  define __CMACCELERATION__
  
  ifndef __COMPONENTS__
  include <Components.h>
  endif
  
  ifndef __CMAPPLICATION__
  include <CMApplication.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  /* -------------------------------------- version info */
  enum {
      cmAccelerationInterfaceVersion = 1
  };
  
  /* -------------------------------------- Component Type */
  enum {
      cmAccelerationComponentType = FOUR_CHAR_CODE('csac')
  };
  
  /* -------------------------------------- Required Component function selectors */
  enum {
      cmLoadTables                = 0,
      cmCalculateData             = 1
  };
  
  /* -------------------------------------- table data for acceleration component */
  
  struct CMAccelerationTableData {
      long                            inputLutEntryCount;         /* count of entries for input lut for one dimension*/
      long                            inputLutWordSize;           /* count of bits of each entry ( e.g. 16 for WORD )*/
      Handle                          inputLut;                   /* handle to input lut*/
      long                            outputLutEntryCount;        /* count of entries for output lut for one dimension  */
      long                            outputLutWordSize;          /* count of bits of each entry ( e.g. 8 for BYTE )*/
      Handle                          outputLut;                  /* handle to output lut*/
      long                            colorLutInDim;              /* input dimension  ( e.g. 3 for LAB ; 4 for CMYK )*/
      long                            colorLutOutDim;             /* output dimension ( e.g. 3 for LAB ; 4 for CMYK )*/
      long                            colorLutGridPoints;         /* count of gridpoints for color lut ( for one Dimension )    */
      long                            colorLutWordSize;           /* count of bits of each entry ( e.g. 8 for BYTE )*/
      Handle                          colorLut;                   /* handle to color lut*/
      CMBitmapColorSpace              inputColorSpace;            /* packing info for input*/
      CMBitmapColorSpace              outputColorSpace;           /* packing info for output*/
      void *                          userData;
      unsigned long                   reserved1;
      unsigned long                   reserved2;
      unsigned long                   reserved3;
      unsigned long                   reserved4;
      unsigned long                   reserved5;
  };
  typedef struct CMAccelerationTableData  CMAccelerationTableData;
  typedef CMAccelerationTableData *       CMAccelerationTableDataPtr;
  typedef CMAccelerationTableDataPtr *    CMAccelerationTableDataHdl;
  /* -------------------------------------- calc data for acceleration component */
  
  struct CMAccelerationCalcData {
      long                            pixelCount;                 /* count of input pixels*/
      Ptr                             inputData;                  /* input array*/
      Ptr                             outputData;                 /* output array*/
      unsigned long                   reserved1;
      unsigned long                   reserved2;
  };
  typedef struct CMAccelerationCalcData   CMAccelerationCalcData;
  typedef CMAccelerationCalcData *        CMAccelerationCalcDataPtr;
  typedef CMAccelerationCalcDataPtr *     CMAccelerationCalcDataHdl;
  /*
     ------------------------------------------------------------------------------------------------ 
                  A c c e l e r a t i o n   C o m p o n e n t   I n t e r f a c e s
     ------------------------------------------------------------------------------------------------ 
  */
  if CALL_NOT_IN_CARBON
  EXTERN_API( CMError )
  CMAccelerationLoadTables        (ComponentInstance      CMSession,
                                   CMAccelerationTableDataPtr  tableData)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x0000, 0x7000, 0xA82A);
  
  EXTERN_API( CMError )
  CMAccelerationCalculateData     (ComponentInstance      CMSession,
                                   CMAccelerationCalcDataPtr  calcData)                       FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __CMACCELERATION__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.