00001
00002
00003
00004
00005
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
00037 enum {
00038 OMA_UNKNOWN = 0
00039 };
00040
00041
00042 enum {
00043 OMA_FALSE = 0,
00044 OMA_TRUE = 1
00045 };
00046
00047
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
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
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
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
00101 enum {
00102 OMA_VENDOR = 1000000,
00103 OMA_VERSION = 1000001,
00104 OMA_EXTENSIONS = 1000002,
00105 };
00106
00107
00108 enum {
00109
00110 OMA_CHUNK_BINDING = 1001000,
00111 OMA_CHUNK_STACK_DEPTH = 1001001,
00112 OMA_MAX_CHUNK_STACK_DEPTH = 1001002,
00113
00114
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
00124 enum {
00125
00126 OMA_CHUNK_MAP_POINTER = 1002500
00127 };
00128
00129
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
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
00157 enum {
00158 OMA_READ_ONLY = 1,
00159 OMA_WRITE_ONLY = 2,
00160 OMA_READ_WRITE = 3
00161 };
00162
00163
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