Main Page | Class List | File List | File Members

oma.h

Go to the documentation of this file.
00001 /* Copyright 2003, OMA Group
00002         This file is licenced under a BSD derived license with exact
00003         terms specified in the COPYING file supplied. If this file
00004         was not supplied, you may find more information at:
00005                 http://omapi.sourceforge.net
00006 */
00007                                                                                 
00008 #ifndef INCLUDE_OMAPI__OMA_OMA_H
00009 #define INCLUDE_OMAPI__OMA_OMA_H
00010 
00015 #include <stddef.h>
00016 #include <stdint.h>
00017 
00018 typedef unsigned int   OMAenum;
00019 typedef unsigned char  OMAboolean;
00020 typedef unsigned int   OMAbitfield;
00021 typedef void           OMAvoid;
00022 typedef signed char    OMAbyte;
00023 typedef short          OMAshort;
00024 typedef int            OMAint;
00025 typedef unsigned char  OMAubyte;
00026 typedef unsigned short OMAushort;
00027 typedef unsigned int   OMAuint;
00028 typedef int            OMAsizei;
00029 typedef float          OMAfloat;
00030 typedef float          OMAclampf;
00031 typedef double         OMAdouble;
00032 typedef double         OMAclampd;
00033 typedef intptr_t       OMAintptr;
00034 typedef size_t         OMAsizeiptr;
00035 
00036 /* General Enums */
00037 enum {
00038         OMA_UNKNOWN = 0
00039 };
00040 
00041 /* Boolean Enums */
00042 enum {
00043         OMA_FALSE = 0,
00044         OMA_TRUE  = 1
00045 };
00046 
00047 /* Chunk Type Enums */
00048 enum {
00049         OMA_TEXT      =      1,
00050         OMA_INT       =    200,
00051         OMA_FLOAT     =    300,
00052         OMA_FLOAT2    =    301,
00053         OMA_FLOAT3    =    302,
00054         OMA_FLOAT4    =    303,
00055         OMA_SET       =    800,
00056         OMA_QUAT      =    900,
00057         OMA_MATRIX    =    901,
00058         OMA_FRAME     =   2000,
00059         OMA_OBJECT    =   3000,
00060         OMA_KEYFRAME  =   3001,
00061         OMA_EXTENSION = 100000
00062 };
00063 
00064 /* Geometry Type Enums */
00065 enum {
00066         OMA_TRIANGLES      =  1,
00067         OMA_TRIANGLE_STRIP =  2,
00068         OMA_TRIANGLE_FAN   =  3,
00069         OMA_QUADS          =  4,
00070         OMA_QUAD_STRIP     =  5,
00071         OMA_LINES          =  6,
00072         OMA_LINE_LOOP      =  7,
00073         OMA_LINE_STRIP     =  8,
00074         OMA_POLYGON        =  9,
00075         OMA_POINTS         = 10
00076 };
00077 
00078 /* Transistion Type Enums */
00079 enum {
00080         OMA_ROUND_DOWN           = 1,
00081         OMA_ROUND_UP             = 2,
00082         OMA_ROUND_NEAREST        = 3,
00083         OMA_LINEAR_INTERPOLATION = 4,
00084         OMA_CUBIC_INTERPOLATION  = 5
00085 };
00086 
00087 /* Error Enums */
00088 enum {
00089         OMA_NO_ERROR           = 0,
00090         OMA_INVALID_ENUM       = 1,
00091         OMA_INVALID_VALUE      = 2,
00092         OMA_INVALID_OPERATION  = 3,
00093         OMA_OUT_OF_MEMORY      = 4,
00094         OMA_INTERNAL_ERROR     = 5,
00095         OMA_FILE_IO_ERROR      = 6,
00096         OMA_STACK_OVERFLOW     = 7,
00097         OMA_STACK_UNDERFLOW    = 8
00098 };
00099 
00100 /* String Enums (1000000 - 1000999) */
00101 enum {
00102         OMA_VENDOR     = 1000000,
00103         OMA_VERSION    = 1000001,
00104         OMA_EXTENSIONS = 1000002,
00105 };
00106 
00107 /* Int Enums (1001000 - 1001999) */
00108 enum {
00109         /* Get */
00110         OMA_CHUNK_BINDING         = 1001000,
00111         OMA_CHUNK_STACK_DEPTH     = 1001001,
00112         OMA_MAX_CHUNK_STACK_DEPTH = 1001002,
00113 
00114         /* GetChunkParameter */
00115         OMA_CHUNK_TYPE            = 1001500,
00116         OMA_CHUNK_SIZE            = 1001501,
00117         OMA_CHUNK_ELEM_COUNT      = 1001502,
00118         OMA_CHUNK_ELEM_SIZE       = 1001503,
00119         OMA_CHUNK_ACCESS          = 1001550,
00120         OMA_CHUNK_MAPPED          = 1001551
00121 };
00122 
00123 /* Pointer Enums (1002000 - 1002999) */
00124 enum {
00125         /* GetChunkPointer */
00126         OMA_CHUNK_MAP_POINTER     = 1002500
00127 };
00128 
00129 /* Chunk Stride Int Enums (> 5000000) */
00130 enum {
00131         OMA_TEXT_STRIDE      = 5000000 + OMA_TEXT,
00132         OMA_INT_STRIDE       = 5000000 + OMA_INT,
00133         OMA_FLOAT_STRIDE     = 5000000 + OMA_FLOAT,
00134         OMA_FLOAT2_STRIDE    = 5000000 + OMA_FLOAT2,
00135         OMA_FLOAT3_STRIDE    = 5000000 + OMA_FLOAT3,
00136         OMA_FLOAT4_STRIDE    = 5000000 + OMA_FLOAT4,
00137         OMA_SET_STRIDE       = 5000000 + OMA_SET,
00138         OMA_QUAT_STRIDE      = 5000000 + OMA_QUAT,
00139         OMA_MATRIX_STRIDE    = 5000000 + OMA_MATRIX,
00140         OMA_FRAME_STRIDE     = 5000000 + OMA_FRAME,
00141         OMA_OBJECT_STRIDE    = 5000000 + OMA_OBJECT,
00142         OMA_KEYFRAME_STRIDE  = 5000000 + OMA_FRAME,
00143         OMA_EXTENSION_STRIDE = 5000000 + OMA_EXTENSION
00144 };
00145 
00146 /* Format Type Enums */
00147 enum {
00148         OMA_OMA           = 1,
00149         OMA_OMX           = 2,
00150         OMA_WFOBJ         = 3,
00151         OMA_3DS           = 4,
00152         OMA_MD2           = 5,
00153         OMA_MD3           = 6
00154 };
00155 
00156 /* Access Type Enums */
00157 enum {
00158         OMA_READ_ONLY  = 1,
00159         OMA_WRITE_ONLY = 2,
00160         OMA_READ_WRITE = 3
00161 };
00162 
00163 /* Attrib Bitfield Enums */
00164 enum {
00165         OMA_CHUNK_BIT       = 0x00000001,
00166         OMA_ALL_ATTRIB_BITS = 0xFFFFFFFF
00167 };
00168 
00169 #define OMAAPI      extern
00170 #define OMAAPIENTRY
00171 
00197 OMAAPI OMAenum         OMAAPIENTRY omaGetError(void);
00198 
00216 OMAAPI const OMAubyte* OMAAPIENTRY omaGetString(OMAenum pname);
00217 
00223 OMAAPI void*           OMAAPIENTRY omaGetProcAddress(const OMAubyte *which);
00224 
00235 OMAAPI OMAboolean      OMAAPIENTRY omaGetBoolean(OMAenum pname);
00236 
00247 OMAAPI void            OMAAPIENTRY omaGetBooleanv(OMAenum pname, OMAboolean *params);
00248 
00266 OMAAPI OMAint          OMAAPIENTRY omaGetInteger(OMAenum pname);
00267 
00285 OMAAPI void            OMAAPIENTRY omaGetIntegerv(OMAenum pname, OMAint *params);
00286 
00297 OMAAPI void            OMAAPIENTRY omaGetFloatv(OMAenum pname, OMAfloat *params);
00298 
00309 OMAAPI void            OMAAPIENTRY omaGetDoublev(OMAenum pname, OMAdouble *params);
00310 
00314 OMAAPI void            OMAAPIENTRY omaInit(void);
00315 
00319 OMAAPI void            OMAAPIENTRY omaShutdown(void);
00320 
00336 OMAAPI void            OMAAPIENTRY omaPushAttrib(OMAbitfield mask);
00337 
00346 OMAAPI void            OMAAPIENTRY omaPopAttrib(void);
00347 
00352 OMAAPI void            OMAAPIENTRY omaBindChunk(OMAuint name);
00353 
00365 OMAAPI void            OMAAPIENTRY omaDeleteChunks(OMAsizei n, const OMAuint *chunks);
00366 
00379 OMAAPI void            OMAAPIENTRY omaGenChunks(OMAsizei n, OMAuint *chunks);
00380 
00386 OMAAPI OMAboolean      OMAAPIENTRY omaIsChunk(OMAuint name);
00387 
00411 OMAAPI OMAint          OMAAPIENTRY omaGetChunkParameteri(OMAenum pname);
00412 
00436 OMAAPI void            OMAAPIENTRY omaGetChunkParameteriv(OMAenum pname, OMAint *params);
00437 
00451 OMAAPI void*           OMAAPIENTRY omaGetChunkPointer(OMAenum pname);
00452 
00466 OMAAPI void            OMAAPIENTRY omaGetChunkPointerv(OMAenum pname, void **params);
00467 
00505 OMAAPI void            OMAAPIENTRY omaChunkData(OMAenum type, OMAsizeiptr size, const OMAvoid *data);
00506 
00522 OMAAPI void            OMAAPIENTRY omaChunkSubData(OMAintptr offset, OMAsizeiptr size, const OMAvoid *data);
00523 
00539 OMAAPI void            OMAAPIENTRY omaGetChunkSubData(OMAintptr offset, OMAsizeiptr size, OMAvoid *data);
00540 
00557 OMAAPI void*           OMAAPIENTRY omaMapChunk(OMAenum access);
00558 
00567 OMAAPI void            OMAAPIENTRY omaUnmapChunk(void);
00568 
00589 OMAAPI void            OMAAPIENTRY omaLoadPath(OMAenum format, const OMAubyte *path);
00590 
00609 OMAAPI void            OMAAPIENTRY omaLoadBuffer(OMAenum format, const OMAubyte *buffer, OMAsizeiptr size);
00610 
00611 #endif
SourceForge.net Logo Created with DoxygenValid CSS!