[992] | 1 | #ifndef ONI_H
|
---|
| 2 | #error Do not include this file directly, include Oni/Oni.h instead!
|
---|
| 3 | #endif
|
---|
| 4 |
|
---|
| 5 | #ifndef BFW_MOTOKO_DRAW_H
|
---|
| 6 | #define BFW_MOTOKO_DRAW_H
|
---|
| 7 |
|
---|
| 8 | typedef struct M3tDisplayMode
|
---|
| 9 | {
|
---|
| 10 | unsigned short Width;
|
---|
| 11 | unsigned short Height;
|
---|
| 12 | unsigned short Depth;
|
---|
| 13 | unsigned short __unused;
|
---|
| 14 | } M3tDisplayMode; // 0x0010: (size).
|
---|
| 15 |
|
---|
| 16 | typedef struct M3tDisplayDevice
|
---|
| 17 | {
|
---|
| 18 | unsigned int __unknown; //
|
---|
| 19 | unsigned short NumModes; // 0x0004: number of valid display modes on this device.
|
---|
| 20 | M3tDisplayMode Modes[16]; // 0x0006: list of supported display modes.
|
---|
| 21 | unsigned short __padding; // 0x0086: padding (not used).
|
---|
| 22 | } M3tDisplayDevice; // 0x0088: (size).
|
---|
| 23 |
|
---|
| 24 | typedef struct M3tDrawEngineCaps
|
---|
| 25 | {
|
---|
| 26 | int Type; // 0x0000:
|
---|
| 27 | char Name[64]; // 0x0004: draw engine name (eg. "OpenGL").
|
---|
| 28 | char Driver[64]; // 0x0044: driver name (always NULL string).
|
---|
| 29 | unsigned int Version; // 0x0084: draw engine version (1 for OpenGL).
|
---|
| 30 | unsigned int NumDevices; // 0x0088: number of valid DisplayDevice-s.
|
---|
| 31 | M3tDisplayDevice DisplayDevices[8]; // 0x008c: 1 or more display devices.
|
---|
| 32 | int __unknown; // 0x04cc:
|
---|
| 33 | } M3tDrawEngineCaps; // 0x04d0: (size).
|
---|
| 34 |
|
---|
| 35 | typedef struct
|
---|
| 36 | {
|
---|
| 37 | int Context_New;
|
---|
| 38 | int Context_Delete;
|
---|
| 39 | int Texture_ResetAll;
|
---|
| 40 | int PrivateState_Size;
|
---|
| 41 | int PrivateState_New;
|
---|
| 42 | int PrivateState_Delete;
|
---|
| 43 | int State_Update;
|
---|
| 44 | } M3tDrawEngine;
|
---|
| 45 |
|
---|
| 46 | typedef struct
|
---|
| 47 | {
|
---|
| 48 | int FrameStart;
|
---|
| 49 | int FrameEnd;
|
---|
| 50 | int FrameSync;
|
---|
| 51 | int Triangle;
|
---|
| 52 | int Quad;
|
---|
| 53 | int Pent;
|
---|
| 54 | int Line;
|
---|
| 55 | int Point;
|
---|
| 56 | int TriSprite;
|
---|
| 57 | int Sprite;
|
---|
| 58 | int SpriteArray;
|
---|
| 59 | int ScreenCapture;
|
---|
| 60 | int PointVisible;
|
---|
| 61 | int SupportsPointVisible;
|
---|
| 62 | int TextureFormatAvailable;
|
---|
| 63 | int SetResolution;
|
---|
| 64 | int ResetFog;
|
---|
| 65 | int TextureLoad;
|
---|
| 66 | int TextureUnload;
|
---|
| 67 | int SinglePassMultitextureCapable;
|
---|
| 68 | } M3tDrawContext;
|
---|
| 69 |
|
---|
| 70 | typedef struct
|
---|
| 71 | {
|
---|
| 72 | float *Position;
|
---|
| 73 | int *Color;
|
---|
| 74 | float *TexCoord0;
|
---|
| 75 | float *TexCoord1;
|
---|
| 76 | void *Texture0;
|
---|
| 77 | void *Texture1;
|
---|
| 78 | void *State6;
|
---|
| 79 | void *State7;
|
---|
| 80 | void *State8;
|
---|
| 81 | } M3tDrawPtrState;
|
---|
| 82 |
|
---|
| 83 | typedef struct
|
---|
| 84 | {
|
---|
| 85 | WORD data[3][256];
|
---|
| 86 | } M3tWin32GammaRamp;
|
---|
| 87 |
|
---|
| 88 | typedef struct
|
---|
| 89 | {
|
---|
| 90 | float x;
|
---|
| 91 | float y;
|
---|
| 92 | float z;
|
---|
| 93 | float invW;
|
---|
| 94 | } M3tPointScreen;
|
---|
| 95 |
|
---|
| 96 | typedef struct
|
---|
| 97 | {
|
---|
| 98 | char pad[8];
|
---|
| 99 |
|
---|
| 100 | UUtUns16 width;
|
---|
| 101 | UUtUns16 height;
|
---|
| 102 | int texelType; // enum IMtPixelType
|
---|
| 103 |
|
---|
| 104 | UUtUns16 num_x;
|
---|
| 105 | UUtUns16 num_y;
|
---|
| 106 |
|
---|
| 107 | UUtUns32 num_textures;
|
---|
| 108 | void* textures[1]; // struct M3tTextureMap
|
---|
| 109 | } M3tTextureMap_Big;
|
---|
| 110 |
|
---|
| 111 | #define M3cNumBoundingPoints 8// Do not change without changing references below
|
---|
| 112 | #define M3cNumBoundingFaces 6// Do not change without changing references below
|
---|
| 113 |
|
---|
| 114 | typedef struct M3tPoint3D
|
---|
| 115 | {
|
---|
| 116 | float x;
|
---|
| 117 | float y;
|
---|
| 118 | float z;
|
---|
| 119 | } M3tPoint3D;
|
---|
| 120 |
|
---|
| 121 | typedef struct M3tQuad
|
---|
| 122 | {
|
---|
| 123 | uint32_t indices[4];
|
---|
| 124 | } M3tQuad;
|
---|
| 125 |
|
---|
| 126 | typedef struct M3tPlaneEquation
|
---|
| 127 | {
|
---|
| 128 | float a;
|
---|
| 129 | float b;
|
---|
| 130 | float c;
|
---|
| 131 | float d;
|
---|
| 132 | } M3tPlaneEquation;
|
---|
| 133 |
|
---|
| 134 | typedef M3tPoint3D M3tVector3D;
|
---|
| 135 |
|
---|
| 136 | typedef struct M3tBoundingVolume
|
---|
| 137 | {
|
---|
| 138 | M3tPoint3D worldPoints[8];// Must match M3cNumBoundingPoints above
|
---|
| 139 | M3tQuad faces[6];// Must match M3cNumBoundingFaces above
|
---|
| 140 | M3tVector3D normals[6];// Must match M3cNumBoundingFaces above- starting normals
|
---|
| 141 |
|
---|
| 142 | M3tPlaneEquation curPlanes[6];// Must match M3cNumBoundingFaces above- current plane equs
|
---|
| 143 | uint16_t curProjections[6]; // Must match M3cNumBoundingFaces above
|
---|
| 144 | } M3tBoundingVolume;
|
---|
| 145 |
|
---|
| 146 | typedef struct M3tBoundingSphere
|
---|
| 147 | {
|
---|
| 148 | M3tPoint3D center;
|
---|
| 149 | float radius;
|
---|
| 150 | } M3tBoundingSphere;
|
---|
| 151 |
|
---|
| 152 |
|
---|
| 153 | extern char M3gResolutionSwitch;
|
---|
| 154 |
|
---|
| 155 | #endif
|
---|