Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
IRS_MetaHandler.c
/******************************************************************************\ |
Module: PF_MetaHandler.c |
Purpose: Performance QD3D metahandler functions |
Author: Sun-Inn Shih |
Copyright (C) 1993-96 Apple Computer, Inc. All rights reserved. |
\*****************************************************************************/ |
#include <QD3D.h> |
#include <QD3DGeometry.h> |
#include <QD3DRenderer.h> |
#include <QD3DExtension.h> |
#include "IRS_Geometry.h" |
#include "IRS_MetaHandler.h" |
#include "IRS_Methods.h" |
#include "IRS_Update.h" |
/*===========================================================================*\ |
* |
* Routine: IRS_Geometry_MetaHandler() |
* |
* |
* kQ3GeometryTypeTriangle |
* kQ3GeometryTypeLine |
* kQ3GeometryTypePoint |
* kQ3GeometryTypeMarker |
* kQ3GeometryTypePixmapMarker |
\*===========================================================================*/ |
static TQ3XFunctionPointer IRS_Geometry_MetaHandler( |
TQ3XMethodType pMethodType) |
{ |
switch (pMethodType) |
{ |
/* triangle handler : required */ |
case kQ3GeometryTypeTriangle: |
return (TQ3XFunctionPointer) IRS_Geometry_Triangle; |
/* lines : required */ |
case kQ3GeometryTypeLine: |
return (TQ3XFunctionPointer) IRS_Geometry_Line; |
/* point handler : required */ |
case kQ3GeometryTypePoint: |
return (TQ3XFunctionPointer) IRS_Geometry_Point; |
/* marker handler : required */ |
case kQ3GeometryTypeMarker: |
return (TQ3XFunctionPointer) IRS_Geometry_Marker; |
/* pixmapMarker handler : required */ |
case kQ3GeometryTypePixmapMarker: |
return (TQ3XFunctionPointer) IRS_Geometry_PixmapMarker; |
/* pixmapMarker handler : required */ |
case kQ3GeometryTypeTriMesh : |
return (TQ3XFunctionPointer) IRS_Geometry_TM; |
default: |
return NULL; |
} |
} |
/*===========================================================================*\ |
* |
* Routine: IRS_Update_Matrix_MetaHandler() |
* |
* update |
* |
\*===========================================================================*/ |
static TQ3XFunctionPointer IRS_Update_Matrix_MetaHandler( |
TQ3XMethodType pMethodType) |
{ |
switch (pMethodType) |
{ |
/* update the local to frustum matrix */ |
case kQ3XMethodTypeRendererUpdateMatrixLocalToFrustum: |
return (TQ3XFunctionPointer) IRS_Update_Matrix_localToFrustum; |
default: |
return NULL; |
} |
} |
/*===========================================================================*\ |
* |
* Routine: IRSMetaHandler() |
* |
* Comments: top level meta handler |
* |
\*===========================================================================*/ |
TQ3XFunctionPointer IRSMetaHandler( |
TQ3XMethodType pMethodType) |
{ |
switch (pMethodType) |
{ |
/* initialization */ |
case kQ3XMethodTypeObjectNew: |
return (TQ3XFunctionPointer) IRSNew; |
/* clean up */ |
case kQ3XMethodTypeObjectDelete: |
return (TQ3XFunctionPointer) IRSDelete; |
/* start frame : required */ |
case kQ3XMethodTypeRendererStartFrame: |
return (TQ3XFunctionPointer) IRSStartFrame; |
/* end frame: optional */ |
case kQ3XMethodTypeRendererEndFrame: |
return (TQ3XFunctionPointer) IRSEndFrame; |
/* start pass : required*/ |
case kQ3XMethodTypeRendererStartPass: |
return (TQ3XFunctionPointer) IRSStartPass; |
/* end pass : required */ |
case kQ3XMethodTypeRendererEndPass: |
return (TQ3XFunctionPointer) IRSEndPass; |
/* cancel rendering: required*/ |
case kQ3XMethodTypeRendererCancel: |
return (TQ3XFunctionPointer) IRSCancel; |
/* to second level metahandlers */ |
/* geometry meta handler: required */ |
case kQ3XMethodTypeRendererSubmitGeometryMetaHandler: |
return (TQ3XFunctionPointer) IRS_Geometry_MetaHandler; |
/* matrix meta handler: optional */ |
case kQ3XMethodTypeRendererUpdateMatrixMetaHandler: |
return (TQ3XFunctionPointer) IRS_Update_Matrix_MetaHandler; |
default: |
return NULL; |
} |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14