summaryrefslogtreecommitdiffhomepage
path: root/examples/shaders/shaders_custom_uniform.c
diff options
context:
space:
mode:
authorRay <[email protected]>2021-06-23 01:25:09 +0200
committerRay <[email protected]>2021-06-23 01:25:09 +0200
commit716e26aa37e352f0188824bc2de7dd3035f7413c (patch)
tree6239af3f4c247e30932b32c884baafb8b2eba8eb /examples/shaders/shaders_custom_uniform.c
parentf989048bda60aeb74111ec687cd44ec92deacfe3 (diff)
downloadraylib-716e26aa37e352f0188824bc2de7dd3035f7413c.tar.gz
raylib-716e26aa37e352f0188824bc2de7dd3035f7413c.zip
Review BeginTextureMode() usage
Moved outside BeginDrawing()/EndDrawing() to illustrate drawing is happening to an external texture (not screen)
Diffstat (limited to 'examples/shaders/shaders_custom_uniform.c')
-rw-r--r--examples/shaders/shaders_custom_uniform.c47
1 files changed, 19 insertions, 28 deletions
diff --git a/examples/shaders/shaders_custom_uniform.c b/examples/shaders/shaders_custom_uniform.c
index 6efda727..60516c11 100644
--- a/examples/shaders/shaders_custom_uniform.c
+++ b/examples/shaders/shaders_custom_uniform.c
@@ -65,11 +65,11 @@ int main(void)
// Setup orbital camera
SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode
- SetTargetFPS(60); // Set our game to run at 60 frames-per-second
+ SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
+ while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
@@ -81,55 +81,46 @@ int main(void)
// Send new value to the shader to be used on drawing
SetShaderValue(shader, swirlCenterLoc, swirlCenter, SHADER_UNIFORM_VEC2);
- UpdateCamera(&camera); // Update camera
+ UpdateCamera(&camera); // Update camera
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
- BeginDrawing();
-
- ClearBackground(RAYWHITE);
-
- BeginTextureMode(target); // Enable drawing to texture
-
- ClearBackground(RAYWHITE); // Clear texture background
-
- BeginMode3D(camera); // Begin 3d mode drawing
-
- DrawModel(model, position, 0.5f, WHITE); // Draw 3d model with texture
+ BeginTextureMode(target); // Enable drawing to texture
+ ClearBackground(RAYWHITE); // Clear texture background
- DrawGrid(10, 1.0f); // Draw a grid
+ BeginMode3D(camera); // Begin 3d mode drawing
+ DrawModel(model, position, 0.5f, WHITE); // Draw 3d model with texture
+ DrawGrid(10, 1.0f); // Draw a grid
+ EndMode3D(); // End 3d mode drawing, returns to orthographic 2d mode
- EndMode3D(); // End 3d mode drawing, returns to orthographic 2d mode
+ DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED);
+ EndTextureMode(); // End drawing to texture (now we have a texture available for next passes)
- DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED);
-
- EndTextureMode(); // End drawing to texture (now we have a texture available for next passes)
+ BeginDrawing();
+ ClearBackground(RAYWHITE); // Clear screen background
+ // Enable shader using the custom uniform
BeginShaderMode(shader);
-
// NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom)
DrawTextureRec(target.texture, (Rectangle){ 0, 0, (float)target.texture.width, (float)-target.texture.height }, (Vector2){ 0, 0 }, WHITE);
-
EndShaderMode();
// Draw some 2d text over drawn texture
DrawText("(c) Barracks 3D model by Alberto Cano", screenWidth - 220, screenHeight - 20, 10, GRAY);
-
DrawFPS(10, 10);
-
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
- UnloadShader(shader); // Unload shader
- UnloadTexture(texture); // Unload texture
- UnloadModel(model); // Unload model
- UnloadRenderTexture(target); // Unload render texture
+ UnloadShader(shader); // Unload shader
+ UnloadTexture(texture); // Unload texture
+ UnloadModel(model); // Unload model
+ UnloadRenderTexture(target); // Unload render texture
- CloseWindow(); // Close window and OpenGL context
+ CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;