/*******************************************************************************************
|
|
*
|
|
* raylib [textures] example - Test DDS loading with mipmaps
|
|
*
|
|
********************************************************************************************/
|
|
|
|
#include "raylib.h"
|
|
|
|
int main(void)
|
|
{
|
|
const int screenWidth = 800;
|
|
const int screenHeight = 450;
|
|
|
|
InitWindow(screenWidth, screenHeight, "raylib [textures] - DDS mipmaps test");
|
|
|
|
// Load DDS texture with mipmaps (create one with a distinct color pattern)
|
|
Texture2D texture = LoadTexture("resources/test_rgba_mipmaps.dds");
|
|
|
|
if (texture.id == 0)
|
|
{
|
|
TraceLog(LOG_ERROR, "Failed to load DDS texture");
|
|
}
|
|
else
|
|
{
|
|
TraceLog(LOG_INFO, "DDS texture loaded: %dx%d, mipmaps: %d",
|
|
texture.width, texture.height, texture.mipmaps);
|
|
}
|
|
|
|
SetTargetFPS(60);
|
|
|
|
while (!WindowShouldClose())
|
|
{
|
|
BeginDrawing();
|
|
ClearBackground(RAYWHITE);
|
|
|
|
// Draw texture at different scales to see mipmap levels
|
|
DrawTexturePro(texture,
|
|
(Rectangle){0, 0, texture.width, texture.height},
|
|
(Rectangle){50, 50, 256, 256},
|
|
(Vector2){0, 0}, 0.0f, WHITE);
|
|
|
|
DrawTexturePro(texture,
|
|
(Rectangle){0, 0, texture.width, texture.height},
|
|
(Rectangle){350, 50, 128, 128},
|
|
(Vector2){0, 0}, 0.0f, WHITE);
|
|
|
|
DrawTexturePro(texture,
|
|
(Rectangle){0, 0, texture.width, texture.height},
|
|
(Rectangle){520, 50, 64, 64},
|
|
(Vector2){0, 0}, 0.0f, WHITE);
|
|
|
|
DrawText("256x256", 50, 320, 20, DARKGRAY);
|
|
DrawText("128x128", 350, 190, 20, DARKGRAY);
|
|
DrawText("64x64", 520, 125, 20, DARKGRAY);
|
|
|
|
DrawText("If colors look wrong (blue/red swapped), mipmaps have swizzling bug",
|
|
10, 400, 10, RED);
|
|
|
|
EndDrawing();
|
|
}
|
|
|
|
UnloadTexture(texture);
|
|
CloseWindow();
|
|
|
|
return 0;
|
|
}
|