Преглед изворни кода

Added function DrawRectanglePro()

Ray пре 8 година
родитељ
комит
177af272f0
1 измењених фајлова са 32 додато и 3 уклоњено
  1. 32 3
      src/shapes.c

+ 32 - 3
src/shapes.c

@@ -4,11 +4,17 @@
 *
 *   Basic functions to draw 2d Shapes and check collisions
 *
-*   External libs:
+*   DEPENDENCIES:
 *       rlgl     - raylib OpenGL abstraction layer
 *
-*   Module Configuration Flags:
-*       ...
+*   CONFIGURATION:
+*
+*   #define SUPPORT_QUADS_ONLY
+*
+    #define SUPPORT_TRIANGLES_ONLY
+*
+*
+*   LICENSE: zlib/libpng
 *
 *   Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
 *
@@ -190,6 +196,29 @@ void DrawRectangleRec(Rectangle rec, Color color)
     DrawRectangle(rec.x, rec.y, rec.width, rec.height, color);
 }
 
+void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color)
+{
+    rlEnableTexture(GetDefaultTexture().id);
+
+    rlPushMatrix();
+        rlTranslatef((float)rec.x, (float)rec.y, 0);
+        rlRotatef(rotation, 0, 0, 1);
+        rlTranslatef(-origin.x, -origin.y, 0);
+
+        rlBegin(RL_QUADS);
+            rlColor4ub(color.r, color.g, color.b, color.a);
+            rlNormal3f(0.0f, 0.0f, 1.0f);                          // Normal vector pointing towards viewer
+
+            rlVertex2f(0.0f, 0.0f);
+            rlVertex2f(0.0f, (float)rec.height);
+            rlVertex2f((float)rec.width, (float)rec.height);
+            rlVertex2f((float)rec.width, 0.0f);
+        rlEnd();
+    rlPopMatrix();
+
+    rlDisableTexture();
+}
+
 // Draw a gradient-filled rectangle
 // NOTE: Gradient goes from bottom (color1) to top (color2)
 void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2)