aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2018-12-15 23:30:55 +0100
committerRay <raysan5@gmail.com>2018-12-15 23:30:55 +0100
commit4008a075a857f7674fe82331dae2636fc593dade (patch)
treec0a093b77d4e3470e031ab7cd065491bfabff6d8 /src
parentcbbd67ab5a8735c9daee1590729c1fdc58594652 (diff)
downloadraylib-4008a075a857f7674fe82331dae2636fc593dade.tar.gz
raylib-4008a075a857f7674fe82331dae2636fc593dade.zip
Added scissor functionality
To draw only in defined area of the screen ADDED: BeginScissorMode(), EndScissorMode()
Diffstat (limited to 'src')
-rw-r--r--src/raylib.h3
-rw-r--r--src/rlgl.h19
2 files changed, 22 insertions, 0 deletions
diff --git a/src/raylib.h b/src/raylib.h
index 85272943..3b7a322a 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -1158,6 +1158,7 @@ RLAPI void MeshTangents(Mesh *mesh);
RLAPI void MeshBinormals(Mesh *mesh); // Compute mesh binormals
// Mesh generation functions
+RLAPI Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh
RLAPI Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions)
RLAPI Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh
RLAPI Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere)
@@ -1228,6 +1229,8 @@ RLAPI void BeginShaderMode(Shader shader); // Beg
RLAPI void EndShaderMode(void); // End custom shader drawing (use default shader)
RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied)
RLAPI void EndBlendMode(void); // End blending mode (reset to default: alpha blending)
+RLAPI void BeginScissorMode(int x, int y, int width, int height); // Begin scissor mode (define screen area for following drawing)
+RLAPI void EndScissorMode(void); // End scissor mode
// VR control functions
RLAPI VrDeviceInfo GetVrDeviceInfo(int vrDeviceType); // Get VR device information for some standard devices
diff --git a/src/rlgl.h b/src/rlgl.h
index 0dff9f83..7631adbf 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -3313,6 +3313,25 @@ void EndBlendMode(void)
BeginBlendMode(BLEND_ALPHA);
}
+// Begin scissor mode (define screen area for following drawing)
+void BeginScissorMode(int x, int y, int width, int height)
+{
+ rlglDraw(); // Force drawing elements
+
+ glEnable(GL_SCISSOR_TEST);
+ glScissor(x, y, width, height);
+
+ rlClearScreenBuffers(); // Clear current scissor area
+}
+
+// End scissor mode
+void EndScissorMode(void)
+{
+ rlglDraw(); // Force drawing elements
+
+ glDisable(GL_SCISSOR_TEST);
+}
+
#if defined(SUPPORT_VR_SIMULATOR)
// Get VR device information for some standard devices
VrDeviceInfo GetVrDeviceInfo(int vrDeviceType)