hglobals.h
2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*---------------------------------------------------------------------*
Copyright (C) 1998 Nintendo.
$RCSfile: hglobals.h,v $
$Revision: 1.1.1.1 $
$Date: 2002/05/02 03:27:21 $
*---------------------------------------------------------------------*/
#ifndef __GLOBALS__
#define __GLOBALS__
#include <ultra64.h>
#include "sysassigned.h"
#include "hspfix.h"
#include "htry.h"
#define FORI(x) for(i=0;i<x;i++)
#define FORJ(x) for(j=0;j<x;j++)
#define abs(x) ( (x >= 0) ? (x) : (-(x)))
#define CEIL(f) ((((s32)f) < f ) ? ((s32)f + 1) : (s32)f )
#define CEIL16(i) ( (i & 0x0f) ? ((i & ~0xf) + 0x10) : i )
#define FLOOR16(i) ( i & ~0xf )
#define PXL32_R(rgba) ((rgba>>24) & 0xFF)
#define PXL32_G(rgba) ((rgba>>16) & 0xFF)
#define PXL32_B(rgba) ((rgba>>8) & 0xFF)
#define PXL32_A(rgba) ( rgba & 0xFF )
typedef struct {
s32 x,y,w,h;
} TRect;
typedef struct {
u8 r,g,b,a;
} TRGBA;
typedef struct TDmaNode_s {
ALLink node; /* !!重要!! 位置固定。 ALLink からの継承メンバ */
void * romaddr; /* データのROM内でのアドレス */
u32 frame; /* 最後に使用したフレームカウンタの値 */
u8 * dma; /* バッファへのポインタ値 */
} TDmaNode;
typedef struct {
u8 initialized; /* すでに初期化されているかのフラグ */
TDmaNode *usedlist_first; /* 使用中のDMABufferリンクリストの先頭 */
TDmaNode *freelist_first; /* 空きDMABufferリンクリストの先頭 */
} TDmaListInfo;
extern OSId g_thread_id;
extern OSPiHandle *HANDLE_ROM;
extern s16 resetflag;
extern u8 rdbSendBuf[RDB_SEND_BUF_SIZE];
extern OSMesgQueue rspMsgQ, rdpMsgQ, siMessageQ;
extern void g_create(void);
extern s32 g_dmaRead(OSPiHandle *handle, void *src_addr, void *dest_addr, u32 size);
#define g_romRead(src_addr,dest_addr,size) g_dmaRead( HANDLE_ROM ,src_addr,dest_addr,size)
extern void g_dmaNode_insert( TDmaNode *_new, TDmaNode *_dest );
#define g_dmaNode_add(_new,_dest) alLink( &(_new->node) , &(_dest->node))
#endif /* __GLOBALS__ */