Improved support for C++

Added compound literals (C99) alternative for C++ compilers that don't
support this feature
This commit is contained in:
raysan5 2016-08-01 18:05:07 +02:00
parent 2dc5f580a6
commit 36cf1f7dfd

View File

@ -235,6 +235,36 @@
// Some Basic Colors // Some Basic Colors
// NOTE: Custom raylib color palette for amazing visuals on WHITE background // NOTE: Custom raylib color palette for amazing visuals on WHITE background
#ifdef __cplusplus
// NOTE: MSC C++ compiler does not support compound literals (C99 feature)
#define LIGHTGRAY Color(200, 200, 200, 255) // Light Gray
#define GRAY Color(130, 130, 130, 255) // Gray
#define DARKGRAY Color(80, 80, 80, 255) // Dark Gray
#define YELLOW Color(253, 249, 0, 255) // Yellow
#define GOLD Color(255, 203, 0, 255) // Gold
#define ORANGE Color(255, 161, 0, 255) // Orange
#define PINK Color(255, 109, 194, 255) // Pink
#define RED Color(230, 41, 55, 255) // Red
#define MAROON Color(190, 33, 55, 255) // Maroon
#define GREEN Color(0, 228, 48, 255) // Green
#define LIME Color(0, 158, 47, 255) // Lime
#define DARKGREEN Color(0, 117, 44, 255) // Dark Green
#define SKYBLUE Color(102, 191, 255, 255) // Sky Blue
#define BLUE Color(0, 121, 241, 255) // Blue
#define DARKBLUE Color(0, 82, 172, 255) // Dark Blue
#define PURPLE Color(200, 122, 255, 255) // Purple
#define VIOLET Color(135, 60, 190, 255) // Violet
#define DARKPURPLE Color(112, 31, 126, 255) // Dark Purple
#define BEIGE Color(211, 176, 131, 255) // Beige
#define BROWN Color(127, 106, 79, 255) // Brown
#define DARKBROWN Color(76, 63, 47, 255) // Dark Brown
#define WHITE Color(255, 255, 255, 255) // White
#define BLACK Color(0, 0, 0, 255) // Black
#define BLANK Color(0, 0, 0, 0) // Blank (Transparent)
#define MAGENTA Color(255, 0, 255, 255) // Magenta
#define RAYWHITE Color(245, 245, 245, 255) // My own White (raylib logo)
#else
#define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray #define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray
#define GRAY (Color){ 130, 130, 130, 255 } // Gray #define GRAY (Color){ 130, 130, 130, 255 } // Gray
#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray #define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray
@ -262,6 +292,7 @@
#define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) #define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent)
#define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta #define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta
#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) #define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo)
#endif
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
// Types and Structures Definition // Types and Structures Definition
@ -308,6 +339,9 @@ typedef struct Color {
unsigned char g; unsigned char g;
unsigned char b; unsigned char b;
unsigned char a; unsigned char a;
#ifdef __cplusplus
Color(unsigned char cr, unsigned char cg, unsigned char cb, unsigned char ca) : r(cr), g(cg), b(cb), a(ca) { }
#endif
} Color; } Color;
// Rectangle type // Rectangle type
@ -819,7 +853,8 @@ Model LoadModelFromRES(const char *rresName, int resId); // Load a 3d mod
Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model
Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based) Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based)
void UnloadModel(Model model); // Unload 3d model from memory void UnloadModel(Model model); // Unload 3d model from memory
Mesh GenMeshCube(float width, float height, float depth);
Mesh GenMeshCube(float width, float height, float depth); // Generate mesh: cube
Material LoadMaterial(const char *fileName); // Load material data (from file) Material LoadMaterial(const char *fileName); // Load material data (from file)
Material LoadDefaultMaterial(void); // Load default material (uses default models shader) Material LoadDefaultMaterial(void); // Load default material (uses default models shader)