Loading...
Searching...
No Matches
window.h
Go to the documentation of this file.
1
36#ifndef OPENSNES_WINDOW_H
37#define OPENSNES_WINDOW_H
38
39#include <snes/types.h>
40
41/*============================================================================
42 * Window Identifiers
43 *============================================================================*/
44
46#define WINDOW_1 0
47
49#define WINDOW_2 1
50
51/*============================================================================
52 * Layer Masks (for windowEnable/windowDisable)
53 *============================================================================*/
54
56#define WINDOW_BG1 BIT(0)
57
59#define WINDOW_BG2 BIT(1)
60
62#define WINDOW_BG3 BIT(2)
63
65#define WINDOW_BG4 BIT(3)
66
68#define WINDOW_OBJ BIT(4)
69
71#define WINDOW_MATH BIT(5)
72
74#define WINDOW_ALL_BG (WINDOW_BG1 | WINDOW_BG2 | WINDOW_BG3 | WINDOW_BG4)
75
77#define WINDOW_ALL (WINDOW_ALL_BG | WINDOW_OBJ)
78
79/*============================================================================
80 * Window Logic Operations
81 *============================================================================*/
82
84#define WINDOW_LOGIC_OR 0
85
87#define WINDOW_LOGIC_AND 1
88
90#define WINDOW_LOGIC_XOR 2
91
93#define WINDOW_LOGIC_XNOR 3
94
95/*============================================================================
96 * Window Masking Modes
97 *============================================================================*/
98
100#define WINDOW_MASK_INSIDE 0
101
103#define WINDOW_MASK_OUTSIDE 1
104
105/*============================================================================
106 * Main Screen / Sub Screen Window Selection
107 *============================================================================*/
108
110#define WINDOW_MAIN_SCREEN 0
111
113#define WINDOW_SUB_SCREEN 1
114
115/*============================================================================
116 * Core Window Functions
117 *============================================================================*/
118
124void windowInit(void);
125
140void windowSetPos(u8 window, u8 left, u8 right);
141
155void windowEnable(u8 window, u8 layers);
156
163void windowDisable(u8 window, u8 layers);
164
171
181void windowSetInvert(u8 window, u8 layers, u8 invert);
182
191void windowSetLogic(u8 layer, u8 logic);
192
201
209void windowSetSubMask(u8 layers);
210
211/*============================================================================
212 * Window Effect Helpers
213 *============================================================================*/
214
223void windowCentered(u8 window, u8 width);
224
233void windowSplit(u8 splitX);
234
235#endif /* OPENSNES_WINDOW_H */
unsigned char u8
8-bit unsigned integer (0 to 255)
Definition types.h:46
OpenSNES Standard Types.
void windowCentered(u8 window, u8 width)
Create a centered rectangular window.
void windowSetPos(u8 window, u8 left, u8 right)
Set window boundaries.
void windowSetMainMask(u8 layers)
Set main screen window masking.
void windowSetSubMask(u8 layers)
Set sub screen window masking.
void windowInit(void)
Initialize window system.
void windowSplit(u8 splitX)
Create a vertical split at the specified X position.
void windowSetLogic(u8 layer, u8 logic)
Set logic operation for combining windows.
void windowDisable(u8 window, u8 layers)
Disable window for specified layers.
void windowDisableAll(void)
Disable all windows.
void windowSetInvert(u8 window, u8 layers, u8 invert)
Set window inversion for layers.
void windowEnable(u8 window, u8 layers)
Enable window for specified layers.