topical media & game development

talk show tell print

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



  /*
       File:       QD3DStyle.h
   
       Contains:   Q3Style types and routines
   
       Version:    Technology: Quickdraw 3D 1.6
                   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 __QD3DSTYLE__
  define __QD3DSTYLE__
  
  ifndef __QD3D__
  include <QD3D.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=power
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  if PRAGMA_ENUM_ALWAYSINT
      #if defined(__fourbyteints__) && !__fourbyteints__ 
          #define __QD3DSTYLE__RESTORE_TWOBYTEINTS
          #pragma fourbyteints on
      #endif
      #pragma enumsalwaysint on
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=int
  #elif PRAGMA_ENUM_PACK
      #if __option(pack_enums)
          #define __QD3DSTYLE__RESTORE_PACKED_ENUMS
          #pragma options(!pack_enums)
      #endif
  endif
  
  
**************************************************************************** * ** * Style Base Class Routines ** * ** ***************************************************************************

  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3ObjectType )
  Q3Style_GetType                 (TQ3StyleObject         style);
  
  EXTERN_API_C( TQ3Status )
  Q3Style_Submit                  (TQ3StyleObject         style,
                                   TQ3ViewObject          view);
  
  
**************************************************************************** * ** * Subdivision ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3SubdivisionMethod {
      kQ3SubdivisionMethodConstant = 0,
      kQ3SubdivisionMethodWorldSpace = 1,
      kQ3SubdivisionMethodScreenSpace = 2
  };
  typedef enum TQ3SubdivisionMethod TQ3SubdivisionMethod;
  
  struct TQ3SubdivisionStyleData {
      TQ3SubdivisionMethod            method;
      float                           c1;
      float                           c2;
  };
  typedef struct TQ3SubdivisionStyleData  TQ3SubdivisionStyleData;
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3SubdivisionStyle_New          (const TQ3SubdivisionStyleData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3SubdivisionStyle_Submit       (const TQ3SubdivisionStyleData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3SubdivisionStyle_SetData      (TQ3StyleObject         subdiv,
                                   const TQ3SubdivisionStyleData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3SubdivisionStyle_GetData      (TQ3StyleObject         subdiv,
                                   TQ3SubdivisionStyleData * data);
  
  
**************************************************************************** * ** * Pick ID ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3StyleObject )
  Q3PickIDStyle_New               (unsigned long          id);
  
  EXTERN_API_C( TQ3Status )
  Q3PickIDStyle_Submit            (unsigned long          id,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3PickIDStyle_Get               (TQ3StyleObject         pickIDObject,
                                   unsigned long *        id);
  
  EXTERN_API_C( TQ3Status )
  Q3PickIDStyle_Set               (TQ3StyleObject         pickIDObject,
                                   unsigned long          id);
  
  
**************************************************************************** * ** * Pick Parts ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3PickPartsMasks {
      kQ3PickPartsObject          = 0,
      kQ3PickPartsMaskFace        = 1 << 0,
      kQ3PickPartsMaskEdge        = 1 << 1,
      kQ3PickPartsMaskVertex      = 1 << 2
  };
  typedef enum TQ3PickPartsMasks TQ3PickPartsMasks;
  
  typedef unsigned long                   TQ3PickParts;
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3PickPartsStyle_New            (TQ3PickParts           parts);
  
  EXTERN_API_C( TQ3Status )
  Q3PickPartsStyle_Submit         (TQ3PickParts           parts,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3PickPartsStyle_Get            (TQ3StyleObject         pickPartsObject,
                                   TQ3PickParts *         parts);
  
  EXTERN_API_C( TQ3Status )
  Q3PickPartsStyle_Set            (TQ3StyleObject         pickPartsObject,
                                   TQ3PickParts           parts);
  
  
**************************************************************************** * ** * Receive Shadows ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3StyleObject )
  Q3ReceiveShadowsStyle_New       (TQ3Boolean             receives);
  
  EXTERN_API_C( TQ3Status )
  Q3ReceiveShadowsStyle_Submit    (TQ3Boolean             receives,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3ReceiveShadowsStyle_Get       (TQ3StyleObject         styleObject,
                                   TQ3Boolean *           receives);
  
  EXTERN_API_C( TQ3Status )
  Q3ReceiveShadowsStyle_Set       (TQ3StyleObject         styleObject,
                                   TQ3Boolean             receives);
  
  
**************************************************************************** * ** * Fill Styles ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3FillStyle {
      kQ3FillStyleFilled          = 0,
      kQ3FillStyleEdges           = 1,
      kQ3FillStylePoints          = 2
  };
  typedef enum TQ3FillStyle TQ3FillStyle;
  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3FillStyle_New                 (TQ3FillStyle           fillStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3FillStyle_Submit              (TQ3FillStyle           fillStyle,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3FillStyle_Get                 (TQ3StyleObject         styleObject,
                                   TQ3FillStyle *         fillStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3FillStyle_Set                 (TQ3StyleObject         styleObject,
                                   TQ3FillStyle           fillStyle);
  
  
**************************************************************************** * ** * Backfacing Styles ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3BackfacingStyle {
      kQ3BackfacingStyleBoth      = 0,
      kQ3BackfacingStyleRemove    = 1,
      kQ3BackfacingStyleFlip      = 2
  };
  typedef enum TQ3BackfacingStyle TQ3BackfacingStyle;
  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3BackfacingStyle_New           (TQ3BackfacingStyle     backfacingStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3BackfacingStyle_Submit        (TQ3BackfacingStyle     backfacingStyle,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3BackfacingStyle_Get           (TQ3StyleObject         backfacingObject,
                                   TQ3BackfacingStyle *   backfacingStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3BackfacingStyle_Set           (TQ3StyleObject         backfacingObject,
                                   TQ3BackfacingStyle     backfacingStyle);
  
  
**************************************************************************** * ** * Interpolation Types ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3InterpolationStyle {
      kQ3InterpolationStyleNone   = 0,
      kQ3InterpolationStyleVertex = 1,
      kQ3InterpolationStylePixel  = 2
  };
  typedef enum TQ3InterpolationStyle TQ3InterpolationStyle;
  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3InterpolationStyle_New        (TQ3InterpolationStyle  interpolationStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3InterpolationStyle_Submit     (TQ3InterpolationStyle  interpolationStyle,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3InterpolationStyle_Get        (TQ3StyleObject         interpolationObject,
                                   TQ3InterpolationStyle * interpolationStyle);
  
  EXTERN_API_C( TQ3Status )
  Q3InterpolationStyle_Set        (TQ3StyleObject         interpolationObject,
                                   TQ3InterpolationStyle  interpolationStyle);
  
  
**************************************************************************** * ** * Highlight Style ** * ** ***************************************************************************

  
  EXTERN_API_C( TQ3StyleObject )
  Q3HighlightStyle_New            (TQ3AttributeSet        highlightAttribute);
  
  EXTERN_API_C( TQ3Status )
  Q3HighlightStyle_Submit         (TQ3AttributeSet        highlightAttribute,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3HighlightStyle_Get            (TQ3StyleObject         highlight,
                                   TQ3AttributeSet *      highlightAttribute);
  
  EXTERN_API_C( TQ3Status )
  Q3HighlightStyle_Set            (TQ3StyleObject         highlight,
                                   TQ3AttributeSet        highlightAttribute);
  
  
**************************************************************************** * ** * FrontFacing Direction Styles ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3OrientationStyle {
      kQ3OrientationStyleCounterClockwise = 0,
      kQ3OrientationStyleClockwise = 1
  };
  typedef enum TQ3OrientationStyle TQ3OrientationStyle;
  
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3OrientationStyle_New          (TQ3OrientationStyle    frontFacingDirection);
  
  EXTERN_API_C( TQ3Status )
  Q3OrientationStyle_Submit       (TQ3OrientationStyle    frontFacingDirection,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3OrientationStyle_Get          (TQ3StyleObject         frontFacingDirectionObject,
                                   TQ3OrientationStyle *  frontFacingDirection);
  
  EXTERN_API_C( TQ3Status )
  Q3OrientationStyle_Set          (TQ3StyleObject         frontFacingDirectionObject,
                                   TQ3OrientationStyle    frontFacingDirection);
  
  
**************************************************************************** * ** * AntiAlias Style ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3AntiAliasModeMasks {
      kQ3AntiAliasModeMaskEdges   = 1 << 0,
      kQ3AntiAliasModeMaskFilled  = 1 << 1
  };
  typedef enum TQ3AntiAliasModeMasks TQ3AntiAliasModeMasks;
  
  typedef unsigned long                   TQ3AntiAliasMode;
  
  struct TQ3AntiAliasStyleData {
      TQ3Switch                       state;
      TQ3AntiAliasMode                mode;
      float                           quality;
  };
  typedef struct TQ3AntiAliasStyleData    TQ3AntiAliasStyleData;
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3AntiAliasStyle_New            (const TQ3AntiAliasStyleData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3AntiAliasStyle_Submit         (const TQ3AntiAliasStyleData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3AntiAliasStyle_GetData        (TQ3StyleObject         styleObject,
                                   TQ3AntiAliasStyleData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3AntiAliasStyle_SetData        (TQ3StyleObject         styleObject,
                                   const TQ3AntiAliasStyleData * data);
  
  
**************************************************************************** * ** * Fog Style ** * ** ***************************************************************************

  
  endif  /* CALL_NOT_IN_CARBON */
  
  enum TQ3FogMode {
      kQ3FogModeLinear            = 0,
      kQ3FogModeExponential       = 1,
      kQ3FogModeExponentialSquared = 2,
      kQ3FogModeAlpha             = 3
  };
  typedef enum TQ3FogMode TQ3FogMode;
  
  struct TQ3FogStyleData {
      TQ3Switch                       state;
      TQ3FogMode                      mode;
      float                           fogStart;
      float                           fogEnd;
      float                           density;
      TQ3ColorARGB                    color;
  };
  typedef struct TQ3FogStyleData          TQ3FogStyleData;
  if CALL_NOT_IN_CARBON
  EXTERN_API_C( TQ3StyleObject )
  Q3FogStyle_New                  (const TQ3FogStyleData * data);
  
  EXTERN_API_C( TQ3Status )
  Q3FogStyle_Submit               (const TQ3FogStyleData * data,
                                   TQ3ViewObject          view);
  
  EXTERN_API_C( TQ3Status )
  Q3FogStyle_GetData              (TQ3StyleObject         styleObject,
                                   TQ3FogStyleData *      data);
  
  EXTERN_API_C( TQ3Status )
  Q3FogStyle_SetData              (TQ3StyleObject         styleObject,
                                   const TQ3FogStyleData * data);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if PRAGMA_ENUM_ALWAYSINT
      #pragma enumsalwaysint reset
      #ifdef __QD3DSTYLE__RESTORE_TWOBYTEINTS
          #pragma fourbyteints off
      #endif
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=reset
  #elif defined(__QD3DSTYLE__RESTORE_PACKED_ENUMS)
      #pragma options(pack_enums)
  endif
  
  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 /* __QD3DSTYLE__ */
  
  


(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.