diff options
| author | victorfisac <[email protected]> | 2016-10-06 20:57:31 +0200 |
|---|---|---|
| committer | victorfisac <[email protected]> | 2016-10-06 20:57:31 +0200 |
| commit | 2a158c47955d2d849e939152e0c174b02c500104 (patch) | |
| tree | fbf515597add99255f0e980d7a12ea33a3aa5585 /examples/textures_raw_data.lua | |
| parent | 3e1321ac24743cf3df1c2bb923023f9c222aa250 (diff) | |
| parent | db6538859cd2fabb44f1f29cd87f5b498ca0c2c8 (diff) | |
| download | raylib-2a158c47955d2d849e939152e0c174b02c500104.tar.gz raylib-2a158c47955d2d849e939152e0c174b02c500104.zip | |
Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop
Diffstat (limited to 'examples/textures_raw_data.lua')
| -rw-r--r-- | examples/textures_raw_data.lua | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/examples/textures_raw_data.lua b/examples/textures_raw_data.lua new file mode 100644 index 00000000..0bad1771 --- /dev/null +++ b/examples/textures_raw_data.lua @@ -0,0 +1,83 @@ +------------------------------------------------------------------------------------------- +-- +-- raylib [textures] example - Load textures from raw data +-- +-- NOTE: Images are loaded in CPU memory (RAM) textures are loaded in GPU memory (VRAM) +-- +-- This example has been created using raylib 1.6 (www.raylib.com) +-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +-- +-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5) +-- +------------------------------------------------------------------------------------------- + +--#include <stdlib.h> -- Required for malloc() and free() + +-- Initialization +------------------------------------------------------------------------------------------- +local screenWidth = 800 +local screenHeight = 450 + +InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data") + +-- NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) + +-- Load RAW image data (512x512, 32bit RGBA, no file header) +local sonicRaw = LoadImageRaw("resources/texture_formats/sonic_R8G8B8A8.raw", 512, 512, TextureFormat.UNCOMPRESSED_R8G8B8A8, 0) +local sonic = LoadTextureFromImage(sonicRaw) -- Upload CPU (RAM) image to GPU (VRAM) +UnloadImage(sonicRaw) -- Unload CPU (RAM) image data + +-- Generate a checked texture by code (1024x1024 pixels) +local width = 1024 +local height = 1024 + +-- Dynamic memory allocation to store pixels data (Color type) +local pixels = {} + +for y = 1, height do + for x = 1, width do + if ((((x - 1)/32+(y - 1)//32)//1)%2 == 0) then pixels[(y - 1)*height + x] = DARKBLUE + else pixels[(y - 1)*height + x] = SKYBLUE end + end +end + +-- Load pixels data into an image structure and create texture +local checkedIm = LoadImageEx(pixels, width, height) +local checked = LoadTextureFromImage(checkedIm) +UnloadImage(checkedIm) -- Unload CPU (RAM) image data + +-- Dynamic memory must be freed after using it +--free(pixels) -- Unload CPU (RAM) pixels data +------------------------------------------------------------------------------------------- + +-- Main game loop +while not WindowShouldClose() do -- Detect window close button or ESC key + -- Update + --------------------------------------------------------------------------------------- + -- TODO: Update your variables here + --------------------------------------------------------------------------------------- + + -- Draw + --------------------------------------------------------------------------------------- + BeginDrawing() + + ClearBackground(RAYWHITE) + + DrawTexture(checked, screenWidth/2 - checked.width/2, screenHeight/2 - checked.height/2, Fade(WHITE, 0.3)) + DrawTexture(sonic, 330, -20, WHITE) + + DrawText("CHECKED TEXTURE ", 84, 100, 30, DARKBLUE) + DrawText("GENERATED by CODE", 72, 164, 30, DARKBLUE) + DrawText("and RAW IMAGE LOADING", 46, 226, 30, DARKBLUE) + + EndDrawing() + --------------------------------------------------------------------------------------- +end + +-- De-Initialization +------------------------------------------------------------------------------------------- +UnloadTexture(sonic) -- Texture unloading +UnloadTexture(checked) -- Texture unloading + +CloseWindow() -- Close window and OpenGL context +-------------------------------------------------------------------------------------------
\ No newline at end of file |
