mirror of
				https://github.com/raysan5/raylib.git
				synced 2025-10-26 12:27:01 +00:00 
			
		
		
		
	Added new example: text drawing on image
This commit is contained in:
		
							
								
								
									
										83
									
								
								examples/textures/textures_image_text.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								examples/textures/textures_image_text.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
/*******************************************************************************************
 | 
			
		||||
*
 | 
			
		||||
*   raylib [texture] example - Image text drawing using TTF generated spritefont
 | 
			
		||||
*
 | 
			
		||||
*   This example has been created using raylib 1.8 (www.raylib.com)
 | 
			
		||||
*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
 | 
			
		||||
*
 | 
			
		||||
*   Copyright (c) 2017 Ramon Santamaria (@raysan5)
 | 
			
		||||
*
 | 
			
		||||
********************************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include "raylib.h"
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
    // Initialization
 | 
			
		||||
    //--------------------------------------------------------------------------------------
 | 
			
		||||
    int screenWidth = 800;
 | 
			
		||||
    int screenHeight = 450;
 | 
			
		||||
 | 
			
		||||
    InitWindow(screenWidth, screenHeight, "raylib [texture] example - image text drawing");
 | 
			
		||||
    
 | 
			
		||||
    // TTF SpriteFont loading with custom generation parameters
 | 
			
		||||
    SpriteFont font = LoadSpriteFontEx("resources/KAISG.ttf", 64, 0, 0);
 | 
			
		||||
    
 | 
			
		||||
    Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM)
 | 
			
		||||
 | 
			
		||||
    // Draw over image using custom font
 | 
			
		||||
    ImageDrawTextEx(&parrots, (Vector2){ 20, 20 }, font, "[Parrots font drawing]", font.baseSize, 0, WHITE);
 | 
			
		||||
 | 
			
		||||
    Texture2D texture = LoadTextureFromImage(parrots);  // Image converted to texture, uploaded to GPU memory (VRAM)
 | 
			
		||||
    UnloadImage(parrots);   // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM
 | 
			
		||||
    
 | 
			
		||||
    Vector2 position = { screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 20 };
 | 
			
		||||
    
 | 
			
		||||
    bool showFont = false;
 | 
			
		||||
 | 
			
		||||
    SetTargetFPS(60);
 | 
			
		||||
    //--------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
    // Main game loop
 | 
			
		||||
    while (!WindowShouldClose())    // Detect window close button or ESC key
 | 
			
		||||
    {
 | 
			
		||||
        // Update
 | 
			
		||||
        //----------------------------------------------------------------------------------
 | 
			
		||||
        if (IsKeyDown(KEY_SPACE)) showFont = true;
 | 
			
		||||
        else showFont = false;
 | 
			
		||||
        //----------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
        // Draw
 | 
			
		||||
        //----------------------------------------------------------------------------------
 | 
			
		||||
        BeginDrawing();
 | 
			
		||||
 | 
			
		||||
            ClearBackground(RAYWHITE);
 | 
			
		||||
 | 
			
		||||
            if (!showFont)
 | 
			
		||||
            {
 | 
			
		||||
                // Draw texture with text already drawn inside
 | 
			
		||||
                DrawTextureV(texture, position, WHITE);
 | 
			
		||||
                
 | 
			
		||||
                // Draw text directly using sprite font
 | 
			
		||||
                DrawTextEx(font, "[Parrots font drawing]", (Vector2){ position.x + 20, 
 | 
			
		||||
                           position.y + 20 + 280 }, font.baseSize, 0, WHITE);
 | 
			
		||||
            }
 | 
			
		||||
            else DrawTexture(font.texture, screenWidth/2 - font.texture.width/2, 50, BLACK);
 | 
			
		||||
            
 | 
			
		||||
            DrawText("PRESS SPACE to SEE USED SPRITEFONT ", 290, 420, 10, DARKGRAY);
 | 
			
		||||
        
 | 
			
		||||
        EndDrawing();
 | 
			
		||||
        //----------------------------------------------------------------------------------
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // De-Initialization
 | 
			
		||||
    //--------------------------------------------------------------------------------------
 | 
			
		||||
    UnloadTexture(texture);     // Texture unloading
 | 
			
		||||
        
 | 
			
		||||
    UnloadSpriteFont(font);     // Unload custom spritefont
 | 
			
		||||
    
 | 
			
		||||
    CloseWindow();              // Close window and OpenGL context
 | 
			
		||||
    //--------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user