sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
vblank.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16
17#ifndef __VBLANK_H__
18#define __VBLANK_H__
19
20#include <irx.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26typedef struct vblank_ll_
27{
28 struct vblank_ll_ *next;
29 struct vblank_ll_ *prev;
30} vblank_ll_t;
31
32typedef struct vblank_item_
33{
34 vblank_ll_t ll;
35 int priority;
36 int (*callback)(void *userdata);
37 void *userdata;
38} vblank_item_t;
39
40typedef struct vblank_internals_
41{
42 int ef;
43 int item_count;
44 vblank_ll_t list_00;
45 vblank_ll_t list_11;
46 vblank_ll_t list_free;
47 vblank_item_t list_items[16];
48} vblank_internals_t;
49
50extern vblank_internals_t *GetVblankInternalData(void);
51
52extern void WaitVblankStart();
53extern void WaitVblankEnd();
54extern void WaitVblank();
55extern void WaitNonVblank();
56
57extern int RegisterVblankHandler(int startend, int priority, int (*handler)(void *userdata),
58 void *arg);
59extern int ReleaseVblankHandler(int startend, int (*handler)(void *userdata));
60
61#define vblank_IMPORTS_start DECLARE_IMPORT_TABLE(vblank, 1, 1)
62#define vblank_IMPORTS_end END_IMPORT_TABLE
63
64#define I_WaitVblankStart DECLARE_IMPORT(4, WaitVblankStart)
65#define I_WaitVblankEnd DECLARE_IMPORT(5, WaitVblankEnd)
66#define I_WaitVblank DECLARE_IMPORT(6, WaitVblank)
67#define I_WaitNonVblank DECLARE_IMPORT(7, WaitNonVblank)
68#define I_RegisterVblankHandler DECLARE_IMPORT(8, RegisterVblankHandler)
69#define I_ReleaseVblankHandler DECLARE_IMPORT(9, ReleaseVblankHandler)
70
71#ifdef __cplusplus
72}
73#endif
74
75#endif /* __VBLANK_H__ */