Browse Source

Updated for C++

Ray 9 năm trước cách đây
mục cha
commit
cc2b3228d1
1 tập tin đã thay đổi với 34 bổ sung60 xóa
  1. 34 60
      src/raylib.h

+ 34 - 60
src/raylib.h

@@ -236,67 +236,44 @@
 #define ANDROID_VOLUME_UP       24
 #define ANDROID_VOLUME_DOWN     25
 
-// Some Basic Colors
-// NOTE: Custom raylib color palette for amazing visuals on WHITE background
+// NOTE: MSC C++ compiler does not support compound literals (C99 feature)
+// Plain structures in C++ (without constructors) can be initialized from { } initializers.
 #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)
+    #define CLITERAL
 #else
-    #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)
+    #define CLITERAL    (Color)
 #endif
 
+// Some Basic Colors
+// NOTE: Custom raylib color palette for amazing visuals on WHITE background
+#define LIGHTGRAY  CLITERAL{ 200, 200, 200, 255 }   // Light Gray
+#define GRAY       CLITERAL{ 130, 130, 130, 255 }   // Gray
+#define DARKGRAY   CLITERAL{ 80, 80, 80, 255 }      // Dark Gray
+#define YELLOW     CLITERAL{ 253, 249, 0, 255 }     // Yellow
+#define GOLD       CLITERAL{ 255, 203, 0, 255 }     // Gold
+#define ORANGE     CLITERAL{ 255, 161, 0, 255 }     // Orange
+#define PINK       CLITERAL{ 255, 109, 194, 255 }   // Pink
+#define RED        CLITERAL{ 230, 41, 55, 255 }     // Red
+#define MAROON     CLITERAL{ 190, 33, 55, 255 }     // Maroon
+#define GREEN      CLITERAL{ 0, 228, 48, 255 }      // Green
+#define LIME       CLITERAL{ 0, 158, 47, 255 }      // Lime
+#define DARKGREEN  CLITERAL{ 0, 117, 44, 255 }      // Dark Green
+#define SKYBLUE    CLITERAL{ 102, 191, 255, 255 }   // Sky Blue
+#define BLUE       CLITERAL{ 0, 121, 241, 255 }     // Blue
+#define DARKBLUE   CLITERAL{ 0, 82, 172, 255 }      // Dark Blue
+#define PURPLE     CLITERAL{ 200, 122, 255, 255 }   // Purple
+#define VIOLET     CLITERAL{ 135, 60, 190, 255 }    // Violet
+#define DARKPURPLE CLITERAL{ 112, 31, 126, 255 }    // Dark Purple
+#define BEIGE      CLITERAL{ 211, 176, 131, 255 }   // Beige
+#define BROWN      CLITERAL{ 127, 106, 79, 255 }    // Brown
+#define DARKBROWN  CLITERAL{ 76, 63, 47, 255 }      // Dark Brown
+
+#define WHITE      CLITERAL{ 255, 255, 255, 255 }   // White
+#define BLACK      CLITERAL{ 0, 0, 0, 255 }         // Black
+#define BLANK      CLITERAL{ 0, 0, 0, 0 }           // Blank (Transparent)
+#define MAGENTA    CLITERAL{ 255, 0, 255, 255 }     // Magenta
+#define RAYWHITE   CLITERAL{ 245, 245, 245, 255 }   // My own White (raylib logo)
+
 //----------------------------------------------------------------------------------
 // Types and Structures Definition
 //----------------------------------------------------------------------------------
@@ -342,9 +319,6 @@ typedef struct Color {
     unsigned char g;
     unsigned char b;
     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;
 
 // Rectangle type