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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
//窗口相关功能
void InitWindow(int width, int height, const char *title); //初始化窗口和OpenGL上下文
bool WindowShouldClose(void); //检查是否按下了KEY_ESCAPE或关闭图标
void CloseWindow(void); //关闭窗口并卸载OpenGL上下文
bool IsWindowReady(void); //检查窗口是否已成功初始化
bool IsWindowFullscreen(void); //检查窗口当前是否为全屏
bool IsWindowHidden(void); //检查窗口当前是否隐藏(仅PLATFORM_DESKTOP)
bool IsWindowMinimized(void); //检查窗口当前是否最小化(仅限PLATFORM_DESKTOP)
bool IsWindowMaximized(void); //检查窗口当前是否最大化(仅PLATFORM_DESKTOP)
bool IsWindowFocused(void); //检查窗口当前是否聚焦(仅PLATFORM_DESKTOP)
bool IsWindowResized(void); //检查窗口是否已调整最后一帧的大小
bool IsWindowState(unsigned int flag); //检查是否启用了一个特定窗口标志
void SetWindowState(unsigned int flag); //使用标志设置窗口配置状态(仅限PLATFORM_DESKTOP)
void ClearWindowState(unsigned int flag); //清除窗口配置状态标志
void ToggleFullscreen(void); //切换窗口状态:全屏/窗口(仅PLATFORM_DESKTOP)
void MaximizeWindow(void); //设置窗口状态:最大化, 如果可调整大小(仅PLATFORM_DESKTOP)
void MinimizeWindow(void); //设置窗口状态:最小化, 如果可调整大小(仅PLATFORM_DESKTOP)
void RestoreWindow(void); //设置窗口状态:未最小化/最大化(仅PLATFORM_DESKTOP)
void SetWindowIcon(Image image); //设置窗口图标(仅PLATFORM_DESKTOP)
void SetWindowTitle(const char *title); //设置窗口标题(仅限PLATFORM_DESKTOP)
void SetWindowPosition(int x, int y); //在屏幕上设置窗口位置(仅限PLATFORM_DESKTOP)
void SetWindowMonitor(int monitor); //为当前窗口设置监视器(全屏模式)
void SetWindowMinSize(int width, int height); //设置窗口最小尺寸(对于FLAG_window_RESIZABLE)
void SetWindowSize(int width, int height); //设置窗口尺寸
void SetWindowOpacity(float opacity); //设置窗口不透明度[0.0f..1.0f](仅限PLATFORM_DESKTOP)
void*GetWindowHandle(void); //获取本机窗口句柄
int GetScreenWidth(void); //获取当前屏幕宽度
int GetScreenHeight(void); //获取当前屏幕高度
int GetRenderWidth(void); //获取当前渲染宽度(它考虑HiDPI)
int GetRenderHeight(void); //获取当前渲染高度(它考虑HiDPI)
int GetMonitorCount(void); //获取连接的监视器数量
int GetCurrentMonitor(void); //获取当前连接的监视器
Vector2 GetMonitorPosition(int monitor); //获取指定的监视器位置
int GetMonitorWidth(int monitor); //获取指定的监视器宽度(监视器使用的当前视频模式)
int GetMonitorHeight(int monitor); //获取指定的监视器高度(监视器使用的当前视频模式)
int GetMonitorPhysicalWidth(int monitor); //获取指定的监视器物理宽度(毫米)
int GetMonitorPhysicalHeight(int monitor); //获取指定的监视器物理高度(毫米)
int GetMonitorRefreshRate(int monitor); //获取指定的监视器刷新率
Vector2 GetWindowPosition(void); //获取监视器上的窗口位置XY
Vector2 GetWindowScaleDPI(void); //获取窗口比例DPI因子
const char*GetMonitorName(int monitor); //获取主监视器的可读UTF-8编码名称
void SetClipboardText(const char *text); //设置剪贴板文本内容
const char*GetClipboardText(void); //获取剪贴板文本内容
void EnableEventWaiting(void); //启用等待EndDrawing()上的事件, 无自动事件轮询
void DisableEventWaiting(void); //禁用等待EndDrawing()上的事件, 自动事件轮询
//自定义框架控制功能
//注:这些功能适用于希望完全控制帧处理的高级用户
//默认情况下, EndDrawing()完成以下任务:绘制所有内容+SwapScreenBuffer()+管理帧计时+PollInputEvents()
//要避免这种行为并手动控制帧进程, 请在配置中启用。h:支持自定义框架控制
void SwapScreenBuffer(void); //用前缓冲区交换后缓冲区(屏幕绘图)
void PollInputEvents(void); //注册所有输入事件
void WaitTime(双秒); //等待一段时间(停止程序执行)
//鼠标光标相关功能
void ShowCursor(void); //显示鼠标光标
void HideCursor(void); //隐藏鼠标光标
bool IsCursorHidden(void); //检查鼠标光标是否不可见
void EnableCursor(void); //启用鼠标光标(解锁鼠标光标)
void DisableCursor(void); //禁用鼠标光标(锁定鼠标光标)
bool IsCursorOnScreen(void); //检查鼠标光标是否在屏幕上
//绘图相关功能
void ClearBackground(Color color); //设置背景色(帧缓冲区透明色)
void BeginDrawing(void); //设置画布(帧缓冲区)以开始绘制
void EndDrawing(void); //结束画布绘制和交换缓冲区(双缓冲)
void BeginMode2D(Camera2D相机); //使用自定义相机开始2D模式(2D)
void EndMode2D(void); //使用自定义相机结束2D模式
void BeginMode3D(Camera3D相机); //使用自定义相机开始3D模式(3D)
void EndMode3D(void); //结束三维模式并返回默认的二维正交模式
void BeginTextureMode(RenderTexture2D目标); //开始绘制以渲染Texture
void EndTextureMode(void); //结束绘制以渲染Texture
void BeginShaderMode(Shader shader); //开始自定义着色器绘图
void EndShaderMode(void); //结束自定义着色器绘图(使用默认着色器)
void BeginBlendMode(int模式); //开始混合模式(alpha、加法、乘法、减法、自定义)
void EndBlendMode(void); //结束混合模式(重置为默认值:alpha混合)
void BeginScissorMode(int x, int y, int width, int height); //开始剪式模式(定义下图的屏幕区域)
void EndScissorMode(void); //末端剪式模式
void BeginVrStereoMode(VrStereoConfig config); //开始立体渲染(需要VR模拟器)
void EndVrStereoMode(void); //结束立体渲染(需要VR模拟器)
//VR模拟器的VR立体配置功能
VrStereoConfig LoadVrStereo Config(VrDeviceInfo device); //为VR模拟器设备参数加载VR立体声配置
void UnloadVrStereoConfig(VrStereoConfig config); //卸载VR立体声配置
//着色器管理功能
//注意:OpenGL 1.1上不提供着色器功能
Shader LoadShader(const char *vsFileName, const char *fsFileName); //从文件加载着色器并绑定默认位置
Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); //从代码字符串加载着色器并绑定默认位置
int GetShaderLocation(Shader shader, const char *uniformName); //获取着色器统一位置
int GetShaderLocationAttrib(Shader shader, const char *attribName); //获取着色器属性位置
void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); //设置着色器统一值
void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); //设置着色器统一值向量
void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); //设置着色器统一值(矩阵4x4)
void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); //为Texture设置着色器统一值(sampler2d)
void UnloadShader(Shader shader); //从GPU内存(VRAM)卸载着色器
//屏幕空间相关功能
Ray GetMouseRay(Vector2 mousePosition, 相机相机); //从鼠标位置获取光线跟踪
Matrix GetCameraMatrix(Camera camera); //获取相机变换矩阵(视图矩阵)
Matrix GetCameraMatrix2D(Camera2D相机); //获取相机二维变换矩阵
Vector2 GetWorldToScreen(Vector3位置, 摄像机); //获取三维世界空间位置的屏幕空间位置
Vector2 GetScreenToWorld2D(Vector2位置, Camera2D相机); //获取2d相机屏幕空间位置的世界空间位置
Vector2 GetWorldToScreenEx(Vector3位置, 摄像机, int宽度, int高度); //获取三维世界空间位置的大小位置
Vector2 GetWorldToScreen2D(Vector2位置, Camera2D相机); //获取2d相机世界空间位置的屏幕空间位置
//定时相关功能
void SetTargetFPS(int fps);//设置目标FPS(最大值)
int GetFPS(void); //获取当前FPS
float GetFrameTime(void); //获取绘制的最后一帧的时间(以秒为单位)(增量时间)
double GetTime(void); //获取自InitWindow()以来的运行时间(秒)
//其他。功能
int GetRandomValue(int最小值, int最大值); //获取最小值和最大值之间的随机值(包括两者)
void SetRandomSeed(unsigned int种子); //设置随机数生成器的种子
void TakeScreenshot(const char *fileName); //拍摄当前屏幕的屏幕截图(文件扩展名定义格式)
void SetConfigFlags(unsigned int flag); //设置初始化配置标志(查看flags)
void TraceLog(int logLevel, const char *text, …); //显示跟踪日志消息(log_DEBUG、log_INFO、log_WARNING、log_ERROR…)
void SetTraceLogLevel(int logLevel); //设置当前阈值(最小)日志级别
void *MemAlloc(int size); //内部内存分配器
void *MemRealloc(void *ptr, int size); //内部内存重新定位程序
void MemFree(void *ptr); //内部内存可用
void OpenURL(const char*url); //使用默认系统浏览器打开URL(如果可用)
//设置自定义回调
//警告:回调设置适用于高级用户
void SetTraceLogCallback(TraceLogCallback回调); //设置自定义跟踪日志
void SetLoadFileDataCallback(LoadFileData回调); //设置自定义文件二进制数据加载器
void SetSaveFileDataCallback(SaveFileData回调); //设置自定义文件二进制数据保护程序
void SetLoadFileTextCallback(LoadFileText回调); //设置自定义文件文本数据加载器
void SetSaveFileTextCallback(SaveFileText回调); //设置自定义文件文本数据保护程序
//文件管理功能
unsigned char*LoadFileData(const char *fileName, unsigned int *bytesRead); //将文件数据加载为字节数组(读取)
void UnloadFileData(unsigned char *data); //卸载LoadFileData()分配的文件数据
bool SaveFileData(const char *fileName, void*data, unsigned int bytesToWrite); //将数据从字节数组保存到文件(写入), 成功时返回true
bool ExportDataAsCode(const char *data, unsigned int size, const char *fileName); //将数据导出到代码(.h), 成功时返回true
char*LoadFileText(constchar *fileName); //从文件加载文本数据(读取), 返回以“\0”结尾的字符串
void UnloadFileText(char *text); //卸载LoadFileText()分配的文件文本数据
bool SaveFileText(const char *fileName, char *text); //将文本数据保存到文件(写入), 字符串必须以“\0”结尾, 成功时返回true
bool FileExists(const char *fileName); //检查文件是否存在
bool DirectoryExists(const char *dirPath); //检查目录路径是否存在
bool IsFileExtension(const char *fileName, const char *ext); //检查文件扩展名(包括点:.png、.wav)
int GetFileLength(const char *fileName); //获取以字节为单位的文件长度(注意:GetFileSize()与windows冲突。小时)
const char*GetFileExtension(const char *fileName); //获取指向文件名字符串扩展名的指针(包括点:“.png”)
const char*GetFileName(const char *filePath); //获取路径字符串的文件名指针
const char*GetFileNameWithoutExt(const char *filePath); //获取不带扩展名的文件名字符串(使用静态字符串)
const char*GetDirectoryPath(const char *filePath); //获取带有路径的给定fileName的完整路径(使用静态字符串)
const char*GetPrevDirectoryPath(const char *dirPath); //获取给定路径的上一个目录路径(使用静态字符串)
const char*GetWorkingDirectory(void); //获取当前工作目录(使用静态字符串)
const char*GetApplicationDirectory(void); //如果正在运行的应用程序(使用静态字符串), 则获取目录
bool ChangeDirectory(const char *dir); //更改工作目录, 成功时返回true
bool IsPathFile(const char *path); //检查给定路径是文件还是目录
FilePathList LoadDirectoryFiles(const char *dirPath); //加载目录文件路径
FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdir); //使用扩展筛选和递归目录扫描加载目录文件路径
void UnloadDirectoryFiles(FilePathList文件); //卸载文件路径
bool IsFileDropped(void); //检查文件是否已放入窗口
FilePathList LoadDroppedFiles(void); //加载删除的文件路径
void UnloadDroppedFiles(FilePathList files); //卸载删除的文件路径
long GetFileModTime(const char *fileName); //获取文件修改时间(上次写入时间)
//压缩/编码功能
unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); //压缩数据(DEFLATE算法), 内存必须为MemFree()
unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); //解压缩数据(DEFLATE算法), 内存必须为MemFree()
char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); //将数据编码为Base64字符串, 内存必须为MemFree()
unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); //解码Base64字符串数据, 内存必须为MemFree()
//------------------------------------------------------------------------------------
//输入处理功能(模块:核心)
//------------------------------------------------------------------------------------
//输入相关功能:键盘
bool IsKeyPressed(int键); //检查是否按下了一次键
bool IsKeyDown(int键); //检查是否按下了键
bool IsKeyReleased(int key); //检查按键是否已释放一次
bool IsKeyUp(int key); //检查是否未按下按键
void SetExitKey(int key); //设置自定义键以退出程序(默认为ESC)
int GetKeyPressed(void); //按下按键(keycode), 对排队的按键多次调用, 当队列为空时返回0
int GetCharPressed(void); //获取已按下的字符(unicode), 对已排队的字符多次调用, 当队列为空时返回0
//输入相关功能:Gamepads
bool IsGamepad可用(int gamepad); //检查游戏机是否可用
const char*GetGamepadName(int gamepad); //获取游戏机内部名称id
bool IsGamepadButtonPressed(intGamepads, int按钮); //检查游戏机按钮是否已按下一次
bool IsGamepadButtonDown(intGamepads, int按钮); //检查是否按下了游戏机按钮
bool IsGamepadButtonReleased(intGamepads, int按钮); //检查游戏机按钮是否已释放一次
bool IsGamepadButtonUp(intGamepads, int按钮); //检查是否未按下游戏机按钮
int GetGamepadButtonPressed(void); //按下最后一个游戏机按钮
int GetGamepadAxisCount(intGamepads); //获取游戏机的游戏机轴计数
float GetGamepadAxisMovement(intGamepads, int轴); //获取游戏机轴的轴移动值
int SetGamepadMappings(const char *映射); //设置内部游戏机映射(SDL_GameControllerDB)
//输入相关功能:鼠标
bool IsMouseButtonPressed(int按钮); //检查是否按下了一次鼠标按钮
bool IsMouseButtonDown(int按钮); //检查是否按下了鼠标按钮
bool IsMouseButtonRelease(int按钮); //检查鼠标按钮是否已释放一次
bool IsMouseButtonUp(int按钮); //检查是否未按下鼠标按钮
int GetMouseX(void); //获取鼠标位置X
int GetMouseY(void); //获取鼠标位置Y
Vector2 GetMousePosition(void); //获取鼠标位置XY
Vector2 GetMouseDelta(void); //获取帧之间的鼠标增量
void SetMousePosition(int x, int y); //设置鼠标位置XY
void SetMouseOffset(int offsetX, int offsetY); //设置鼠标偏移
void SetMouseScale(float scaleX,float scaleY); //设置鼠标缩放
float GetMouseWheelMove(void); //获取X或Y的鼠标滚轮移动, 以较大者为准
Vector2 GetMouseWheelMoveV(void); //获取X和Y方向的鼠标滚轮移动
void SetMouseCursor(int鼠标光标); //设置鼠标光标(原文:Set Mouse Cursor)
//输入相关功能:触摸
int GetTouchX(void); //获取触摸点0的触摸位置X(相对于屏幕大小)
int GetTouchY(void); //获取触摸点0的触摸位置Y(相对于屏幕大小)
Vector2 GetTouchPosition(int index); //获取触摸点索引的触摸位置XY(相对于屏幕大小)
int GetTouchPointId(int index); //获取给定索引的接触点标识符
int GetTouchPointCount(void); //获取接触点数量
//------------------------------------------------------------------------------------
//手势和触摸处理功能(模块:手势)
//------------------------------------------------------------------------------------
void SetGesturesEnabled(unsigned int flag); //使用标志启用一组手势
bool IsGestureDetected(int手势); //检查是否检测到手势
int GetGestureDetected(void); //获取最新检测到的手势
float GetGestureHoldDuration(void); //获取手势保持时间(毫秒)
Vector2 GetGestureDragVector(void); //获取手势拖动矢量
float GetGestureDragAngle(void); //获取手势拖动角度
Vector2 GetGesturePinchVector(void); //获取手势捏三角
float GetGesturePinchAngle(void); //获取手势捏角
//------------------------------------------------------------------------------------
//摄像头系统功能(模块:rcamera)
//------------------------------------------------------------------------------------
void SetCameraMode(Camera camera, int mode); //设置相机模式(多种相机模式可用)
void UpdateCamera(Camera*camera); //更新所选模式的相机位置
void SetCameraPanControl(int keyPan); //设置相机平移键以与鼠标移动相结合(自由相机)
void SetCameraAltControl(int keyAlt); //设置相机alt键以与鼠标移动相结合(自由相机)
void SetCameraSmoothZoomControl(int keySmoothZoom); //设置相机平滑缩放键以与鼠标结合(自由相机)
void SetCameraMoveControls(int keyFront, int keyBack, int keyRight, int keyLeft, int key Up, int keyDown); //设置摄像机移动控制(第一人称和第三人称摄像机)
|