PowerVR Software Development Kit


Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

PVRTFixedPoint.h File Reference

Fixed point module of the PowerVR Tools library. More...

#include "PVRTMathTable.h"

Include dependency graph for PVRTFixedPoint.h:

Include dependency graph

Go to the source code of this file.

Classes

struct  HeaderStruct_Mesh

Defines

#define VERTTYPE   float
#define PVR64BIT   long long
#define PVRTF2X(f)   ( (int) ( (f)*(65536) ) )
#define PVRTX2F(x)   ((float)(x)/65536.0f)
#define PVRTXMUL(a, b)   ( (int)( ((PVR64BIT)(a)*(b)) / 65536 ) )
#define PVRTXDIV(a, b)   ( (int)( (((PVR64BIT)(a))<<16)/(b) ) )
#define PVRTABS(a)   ((a) <= 0 ? -(a) : (a) )
#define PVRTPIOVERTWOf   (3.1415926535f / 2.0f)
#define PVRTPIf   (3.1415926535f)
#define PVRTTWOPIf   (3.1415926535f * 2.0f)
#define PVRTONEf   (1.0f)
#define PVRTPIOVERTWOx   PVRTF2X(PVRTPIOVERTWOf)
#define PVRTPIx   PVRTF2X(PVRTPIf)
#define PVRTTWOPIx   PVRTF2X(PVRTTWOPIf)
#define PVRTONEx   PVRTF2X(PVRTONEf)
#define PVRTXCOS(x)   (cos_val[(PVRTXMUL(((PVRTXDIV((x)<0? -(x):(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))])
#define PVRTXSIN(x)   (sin_val[(PVRTXMUL(((PVRTXDIV((x)<0 ? PVRTPIx-(x):(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))])
#define PVRTXTAN(x)   ( (x)<0 ? -tan_val[(PVRTXMUL(((PVRTXDIV(-(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))] : tan_val[(PVRTXMUL(((PVRTXDIV(x, PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))] )
#define PVRTXACOS(x)   (acos_val[PVRTXMUL(((((x) + PVRTF2X(1.0f))>>1) & 0x0000FFFF), (NUM_ENTRIES-1))])
#define PVRTFCOS(x)   ((float)cos(x))
#define PVRTFSIN(x)   ((float)sin(x))
#define PVRTFTAN(x)   ((float)tan(x))
#define PVRTFACOS(x)   ((float)acos(x))
#define VERTTYPEMUL(a, b)   ( (VERTTYPE)((a)*(b)) )
#define VERTTYPEDIV(a, b)   ( (VERTTYPE)((a)/(b)) )
#define VERTTYPEABS(a)   ( (VERTTYPE)(fabs(a)) )
#define f2vt(x)   (x)
#define vt2f(x)   (x)
#define PVRTPIOVERTWO   PVRTPIOVERTWOf
#define PVRTPI   PVRTPIf
#define PVRTTWOPI   PVRTTWOPIf
#define PVRTONE   PVRTONEf
#define PVRTCOS(x)   PVRTFCOS(x)
#define PVRTSIN(x)   PVRTFSIN(x)
#define PVRTTAN(x)   PVRTFTAN(x)
#define PVRTACOS(x)   PVRTFACOS(x)

Typedefs

typedef HeaderStruct_Mesh HeaderStruct_Mesh_Type

Functions

HeaderStruct_Mesh_TypePVRTLoadHeaderObject (const void *headerObj)
void PVRTUnloadHeaderObject (HeaderStruct_Mesh_Type *headerObj)


Detailed Description

Fixed point module of the PowerVR Tools library.

Author:
PowerVR
Date:
26 January 2005
Copyright:
Copyright 2003-2004 by Imagination Technologies Limited. All rights reserved. No part of this software, either material or conceptual may be copied or distributed, transmitted, transcribed, stored in a retrieval system or translated into any human or computer language in any form by any means, electronic, mechanical, manual or other-wise, or disclosed to third parties without the express written permission of Imagination Technologies Limited, Unit 8, HomePark Industrial Estate, King's Langley, Hertfordshire, WD4 8LZ, U.K.
Platform:
Independant
Description:
Set of macros and functions to make fixed-point easier to program.

Define Documentation



f2vt


#define f2vt  )     (x)
 



PVR64BIT


#define PVR64BIT   long long
 



PVRTABS


#define PVRTABS  )     ((a) <= 0 ? -(a) : (a) )
 



PVRTACOS


#define PVRTACOS  )     PVRTFACOS(x)
 



PVRTCOS


#define PVRTCOS  )     PVRTFCOS(x)
 



PVRTF2X


#define PVRTF2X  )     ( (int) ( (f)*(65536) ) )
 



PVRTFACOS


#define PVRTFACOS  )     ((float)acos(x))
 



PVRTFCOS


#define PVRTFCOS  )     ((float)cos(x))
 



PVRTFSIN


#define PVRTFSIN  )     ((float)sin(x))
 



PVRTFTAN


#define PVRTFTAN  )     ((float)tan(x))
 



PVRTONE


#define PVRTONE   PVRTONEf
 



PVRTONEf


#define PVRTONEf   (1.0f)
 



PVRTONEx


#define PVRTONEx   PVRTF2X(PVRTONEf)
 



PVRTPI


#define PVRTPI   PVRTPIf
 



PVRTPIf


#define PVRTPIf   (3.1415926535f)
 



PVRTPIOVERTWO


#define PVRTPIOVERTWO   PVRTPIOVERTWOf
 



PVRTPIOVERTWOf


#define PVRTPIOVERTWOf   (3.1415926535f / 2.0f)
 



PVRTPIOVERTWOx


#define PVRTPIOVERTWOx   PVRTF2X(PVRTPIOVERTWOf)
 



PVRTPIx


#define PVRTPIx   PVRTF2X(PVRTPIf)
 



PVRTSIN


#define PVRTSIN  )     PVRTFSIN(x)
 



PVRTTAN


#define PVRTTAN  )     PVRTFTAN(x)
 



PVRTTWOPI


#define PVRTTWOPI   PVRTTWOPIf
 



PVRTTWOPIf


#define PVRTTWOPIf   (3.1415926535f * 2.0f)
 



PVRTTWOPIx


#define PVRTTWOPIx   PVRTF2X(PVRTTWOPIf)
 



PVRTX2F


#define PVRTX2F  )     ((float)(x)/65536.0f)
 



PVRTXACOS


#define PVRTXACOS  )     (acos_val[PVRTXMUL(((((x) + PVRTF2X(1.0f))>>1) & 0x0000FFFF), (NUM_ENTRIES-1))])
 



PVRTXCOS


#define PVRTXCOS  )     (cos_val[(PVRTXMUL(((PVRTXDIV((x)<0? -(x):(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))])
 



PVRTXDIV


#define PVRTXDIV a,
 )     ( (int)( (((PVR64BIT)(a))<<16)/(b) ) )
 



PVRTXMUL


#define PVRTXMUL a,
 )     ( (int)( ((PVR64BIT)(a)*(b)) / 65536 ) )
 



PVRTXSIN


#define PVRTXSIN  )     (sin_val[(PVRTXMUL(((PVRTXDIV((x)<0 ? PVRTPIx-(x):(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))])
 



PVRTXTAN


#define PVRTXTAN  )     ( (x)<0 ? -tan_val[(PVRTXMUL(((PVRTXDIV(-(x), PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))] : tan_val[(PVRTXMUL(((PVRTXDIV(x, PVRTTWOPIx)) & 0x0000FFFF), (NUM_ENTRIES-1)))] )
 



VERTTYPE


#define VERTTYPE   float
 



VERTTYPEABS


#define VERTTYPEABS  )     ( (VERTTYPE)(fabs(a)) )
 



VERTTYPEDIV


#define VERTTYPEDIV a,
 )     ( (VERTTYPE)((a)/(b)) )
 



VERTTYPEMUL


#define VERTTYPEMUL a,
 )     ( (VERTTYPE)((a)*(b)) )
 



vt2f


#define vt2f  )     (x)
 


Typedef Documentation



HeaderStruct_Mesh_Type


typedef HeaderStruct_Mesh HeaderStruct_Mesh_Type
 


Function Documentation



PVRTLoadHeaderObject


HeaderStruct_Mesh_Type* PVRTLoadHeaderObject const void *  headerObj  ) 
 

Inputs:
headerObj Pointer to object structure in the header file
Returns:
directly usable geometry in fixed or float format as appropriate
Description:
Converts the data exported by MAX to fixed point when used in OpenGL ES common-lite profile.



PVRTUnloadHeaderObject


void PVRTUnloadHeaderObject HeaderStruct_Mesh_Type headerObj  ) 
 

Inputs:
headerObj Pointer returned by LoadHeaderObject
Description:
Releases memory allocated by LoadHeaderObject when geometry no longer needed.


Copyright © 1999-2006, PowerVR Technologies and partners. PowerVR Technologies is a division of Imagination Technologies Ltd.


Generated by DOXYGEN 1.3.6