|
|
@ -1,7 +1,7 @@ |
|
|
|
/********************************************************************************************* |
|
|
|
* |
|
|
|
* raylib 1.1 (www.raylib.com) |
|
|
|
* |
|
|
|
/********************************************************************************************** |
|
|
|
* |
|
|
|
* raylib 1.2 (www.raylib.com) |
|
|
|
* |
|
|
|
* A simple and easy-to-use library to learn videogames programming |
|
|
|
* |
|
|
|
* Features: |
|
|
@ -14,7 +14,7 @@ |
|
|
|
* Basic 3d support for Shapes, Models, Heightmaps and Billboards |
|
|
|
* Powerful math module for Vector and Matrix operations [raymath] |
|
|
|
* Audio loading and playing with streaming support |
|
|
|
* |
|
|
|
* |
|
|
|
* Used external libs: |
|
|
|
* GLFW3 (www.glfw.org) for window/context management and input |
|
|
|
* GLEW for OpenGL extensions loading (3.3+ and ES2) |
|
|
@ -31,21 +31,21 @@ |
|
|
|
* One custom default font is loaded automatically when InitWindow() |
|
|
|
* If using OpenGL 3.3+ or ES2, one default shader is loaded automatically (internally defined) |
|
|
|
* |
|
|
|
* -- LICENSE (raylib v1.1, April 2014) -- |
|
|
|
* -- LICENSE (raylib v1.2, September 2014) -- |
|
|
|
* |
|
|
|
* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, |
|
|
|
* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, |
|
|
|
* BSD-like license that allows static linking with closed source software: |
|
|
|
* |
|
|
|
* |
|
|
|
* Copyright (c) 2013 Ramon Santamaria (Ray San - raysan@raysanweb.com) |
|
|
|
* |
|
|
|
* This software is provided "as-is", without any express or implied warranty. In no event |
|
|
|
* |
|
|
|
* This software is provided "as-is", without any express or implied warranty. In no event |
|
|
|
* will the authors be held liable for any damages arising from the use of this software. |
|
|
|
* |
|
|
|
* Permission is granted to anyone to use this software for any purpose, including commercial |
|
|
|
* Permission is granted to anyone to use this software for any purpose, including commercial |
|
|
|
* applications, and to alter it and redistribute it freely, subject to the following restrictions: |
|
|
|
* |
|
|
|
* 1. The origin of this software must not be misrepresented; you must not claim that you |
|
|
|
* wrote the original software. If you use this software in a product, an acknowledgment |
|
|
|
* 1. The origin of this software must not be misrepresented; you must not claim that you |
|
|
|
* wrote the original software. If you use this software in a product, an acknowledgment |
|
|
|
* in the product documentation would be appreciated but is not required. |
|
|
|
* |
|
|
|
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented |
|
|
@ -58,6 +58,15 @@ |
|
|
|
#ifndef RAYLIB_H |
|
|
|
#define RAYLIB_H |
|
|
|
|
|
|
|
// Choose your platform here or just define it at compile time: -DPLATFORM_DESKTOP |
|
|
|
//#define PLATFORM_DESKTOP // Windows, Linux or OSX |
|
|
|
//#define PLATFORM_ANDROID // Android device |
|
|
|
//#define PLATFORM_RPI // Raspberry Pi |
|
|
|
|
|
|
|
#if defined(PLATFORM_ANDROID) |
|
|
|
#include <android_native_app_glue.h> // Defines android_app struct |
|
|
|
#endif |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Some basic Defines |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -65,10 +74,10 @@ |
|
|
|
#define PI 3.14159265358979323846 |
|
|
|
#endif |
|
|
|
|
|
|
|
#define DEG2RAD (PI / 180.0) |
|
|
|
#define RAD2DEG (180.0 / PI) |
|
|
|
#define DEG2RAD (PI / 180.0f) |
|
|
|
#define RAD2DEG (180.0f / PI) |
|
|
|
|
|
|
|
// Keyboard Function Keys |
|
|
|
// Keyboard Function Keys |
|
|
|
#define KEY_SPACE 32 |
|
|
|
#define KEY_ESCAPE 256 |
|
|
|
#define KEY_ENTER 257 |
|
|
@ -107,16 +116,16 @@ |
|
|
|
|
|
|
|
// Gamepad Buttons |
|
|
|
// NOTE: Adjusted for a PS3 USB Controller |
|
|
|
#define GAMEPAD_BUTTON_A 2 |
|
|
|
#define GAMEPAD_BUTTON_B 1 |
|
|
|
#define GAMEPAD_BUTTON_X 3 |
|
|
|
#define GAMEPAD_BUTTON_Y 4 |
|
|
|
#define GAMEPAD_BUTTON_R1 7 |
|
|
|
#define GAMEPAD_BUTTON_R2 5 |
|
|
|
#define GAMEPAD_BUTTON_L1 6 |
|
|
|
#define GAMEPAD_BUTTON_L2 8 |
|
|
|
#define GAMEPAD_BUTTON_SELECT 9 |
|
|
|
#define GAMEPAD_BUTTON_START 10 |
|
|
|
#define GAMEPAD_BUTTON_A 2 |
|
|
|
#define GAMEPAD_BUTTON_B 1 |
|
|
|
#define GAMEPAD_BUTTON_X 3 |
|
|
|
#define GAMEPAD_BUTTON_Y 4 |
|
|
|
#define GAMEPAD_BUTTON_R1 7 |
|
|
|
#define GAMEPAD_BUTTON_R2 5 |
|
|
|
#define GAMEPAD_BUTTON_L1 6 |
|
|
|
#define GAMEPAD_BUTTON_L2 8 |
|
|
|
#define GAMEPAD_BUTTON_SELECT 9 |
|
|
|
#define GAMEPAD_BUTTON_START 10 |
|
|
|
|
|
|
|
// TODO: Review Xbox360 USB Controller Buttons |
|
|
|
|
|
|
@ -234,6 +243,7 @@ typedef struct VertexData { |
|
|
|
typedef struct Model { |
|
|
|
VertexData mesh; |
|
|
|
unsigned int vaoId; |
|
|
|
unsigned int vboId[4]; |
|
|
|
unsigned int textureId; |
|
|
|
//Matrix transform; |
|
|
|
} Model; |
|
|
@ -256,37 +266,45 @@ extern "C" { // Prevents name mangling of functions |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Window and Graphics Device Functions (Module: core) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
void InitWindow(int width, int height, const char *title); // Initialize Window and Graphics Context (OpenGL) |
|
|
|
void InitWindowEx(int width, int height, const char* title, // Initialize Window and Graphics Context (OpenGL),... |
|
|
|
bool resizable, const char *cursorImage); // ...define if windows-resizable and custom cursor |
|
|
|
void CloseWindow(); // Close Window and Terminate Context |
|
|
|
bool WindowShouldClose(); // Detect if KEY_ESCAPE pressed or Close icon pressed |
|
|
|
void ToggleFullscreen(); // Fullscreen toggle (by default F11) |
|
|
|
#if defined(PLATFORM_ANDROID) |
|
|
|
void InitWindow(int width, int height, struct android_app *state); // Init Android activity |
|
|
|
#elif defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) |
|
|
|
void InitWindow(int width, int height, const char *title); // Initialize Window and OpenGL Graphics |
|
|
|
#endif |
|
|
|
|
|
|
|
void CloseWindow(void); // Close Window and Terminate Context |
|
|
|
bool WindowShouldClose(void); // Detect if KEY_ESCAPE pressed or Close icon pressed |
|
|
|
void ToggleFullscreen(void); // Fullscreen toggle (only PLATFORM_DESKTOP) |
|
|
|
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) |
|
|
|
void SetCustomCursor(const char *cursorImage); // Set a custom cursor icon/image |
|
|
|
void SetExitKey(int key); // Set a custom key to exit program (default is ESC) |
|
|
|
#endif |
|
|
|
int GetScreenWidth(void); // Get current screen width |
|
|
|
int GetScreenHeight(void); // Get current screen height |
|
|
|
|
|
|
|
void ClearBackground(Color color); // Sets Background Color |
|
|
|
void BeginDrawing(); // Setup drawing canvas to start drawing |
|
|
|
void EndDrawing(); // End canvas drawing and Swap Buffers (Double Buffering) |
|
|
|
void BeginDrawing(kt">void); // Setup drawing canvas to start drawing |
|
|
|
void EndDrawing(kt">void); // End canvas drawing and Swap Buffers (Double Buffering) |
|
|
|
|
|
|
|
void Begin3dMode(Camera cam); // Initializes 3D mode for drawing (Camera setup) |
|
|
|
void End3dMode(); // Ends 3D mode and returns to default 2D orthographic mode |
|
|
|
void End3dMode(kt">void); // Ends 3D mode and returns to default 2D orthographic mode |
|
|
|
|
|
|
|
void SetTargetFPS(int fps); // Set target FPS (maximum) |
|
|
|
float GetFPS(); // Returns current FPS |
|
|
|
float GetFrameTime(); // Returns time in seconds for one frame |
|
|
|
float GetFPS(kt">void); // Returns current FPS |
|
|
|
float GetFrameTime(kt">void); // Returns time in seconds for one frame |
|
|
|
|
|
|
|
Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value |
|
|
|
int GetHexValue(Color color); // Returns hexadecimal value for a Color |
|
|
|
|
|
|
|
int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) |
|
|
|
Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0 to 1.0 |
|
|
|
Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f |
|
|
|
|
|
|
|
void ShowLogo(); // Activates raylib logo at startup |
|
|
|
void ShowLogo(kt">void); // Activates raylib logo at startup |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Input Handling Functions (Module: core) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) |
|
|
|
bool IsKeyPressed(int key); // Detect if a key has been pressed once |
|
|
|
bool IsKeyDown(int key); // Detect if a key is being pressed |
|
|
|
bool IsKeyReleased(int key); // Detect if a key has been released once |
|
|
@ -296,10 +314,10 @@ bool IsMouseButtonPressed(int button); // Detect if a mouse but |
|
|
|
bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed |
|
|
|
bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once |
|
|
|
bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed |
|
|
|
int GetMouseX(); // Returns mouse position X |
|
|
|
int GetMouseY(); // Returns mouse position Y |
|
|
|
Vector2 GetMousePosition(); // Returns mouse position XY |
|
|
|
int GetMouseWheelMove(); // Returns mouse wheel movement Y |
|
|
|
int GetMouseX(kt">void); // Returns mouse position X |
|
|
|
int GetMouseY(kt">void); // Returns mouse position Y |
|
|
|
Vector2 GetMousePosition(kt">void); // Returns mouse position XY |
|
|
|
int GetMouseWheelMove(kt">void); // Returns mouse wheel movement Y |
|
|
|
|
|
|
|
bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available |
|
|
|
Vector2 GetGamepadMovement(int gamepad); // Return axis movement vector for a gamepad |
|
|
@ -307,6 +325,13 @@ bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad b |
|
|
|
bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed |
|
|
|
bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once |
|
|
|
bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed |
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(PLATFORM_ANDROID) |
|
|
|
int GetTouchX(void); // Returns touch position X |
|
|
|
int GetTouchY(void); // Returns touch position Y |
|
|
|
Vector2 GetTouchPosition(void); // Returns touch position XY |
|
|
|
#endif |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Basic Shapes Drawing Functions (Module: shapes) |
|
|
@ -354,12 +379,12 @@ void DrawTextureV(Texture2D texture, Vector2 position, Color tint); |
|
|
|
void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters |
|
|
|
void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle |
|
|
|
void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, // Draw a part of a texture defined by a rectangle with 'pro' parameters |
|
|
|
float rotation, Color tint); |
|
|
|
float rotation, Color tint); |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Font Loading and Text Drawing Functions (Module: text) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
SpriteFont GetDefaultFont(); // Get the default SpriteFont |
|
|
|
SpriteFont GetDefaultFont(kt">void); // Get the default SpriteFont |
|
|
|
SpriteFont LoadSpriteFont(const char *fileName); // Load a SpriteFont image into GPU memory |
|
|
|
void UnloadSpriteFont(SpriteFont spriteFont); // Unload SpriteFont from GPU memory |
|
|
|
|
|
|
@ -406,13 +431,13 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotation, Vector3 scale, |
|
|
|
void DrawModelWires(Model model, Vector3 position, float scale, Color color); // Draw a model wires (with texture if set) |
|
|
|
|
|
|
|
void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture |
|
|
|
void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec |
|
|
|
void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Audio Loading and Playing Functions (Module: audio) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
void InitAudioDevice(); // Initialize audio device and context |
|
|
|
void CloseAudioDevice(); // Close the audio device and context (and music stream) |
|
|
|
void InitAudioDevice(kt">void); // Initialize audio device and context |
|
|
|
void CloseAudioDevice(kt">void); // Close the audio device and context (and music stream) |
|
|
|
|
|
|
|
Sound LoadSound(char *fileName); // Load sound to memory |
|
|
|
Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to memory from rRES file (raylib Resource) |
|
|
@ -425,12 +450,13 @@ void SetSoundVolume(Sound sound, float volume); // Set volume fo |
|
|
|
void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) |
|
|
|
|
|
|
|
void PlayMusicStream(char *fileName); // Start music playing (open stream) |
|
|
|
void StopMusicStream(); // Stop music playing (close stream) |
|
|
|
void PauseMusicStream(); // Pause music playing |
|
|
|
bool MusicIsPlaying(); // Check if music is playing |
|
|
|
void StopMusicStream(void); // Stop music playing (close stream) |
|
|
|
void PauseMusicStream(void); // Pause music playing |
|
|
|
void ResumeMusicStream(void); // Resume playing paused music |
|
|
|
bool MusicIsPlaying(void); // Check if music is playing |
|
|
|
void SetMusicVolume(float volume); // Set volume for music (1.0 is max level) |
|
|
|
float GetMusicTimeLength(); // Get current music time length (in seconds) |
|
|
|
float GetMusicTimePlayed(); // Get current music time played (in seconds) |
|
|
|
float GetMusicTimeLength(kt">void); // Get current music time length (in seconds) |
|
|
|
float GetMusicTimePlayed(kt">void); // Get current music time played (in seconds) |
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
} |
|
|
|