From b0107144261f6513bbde95323c9663a71ed8f3c9 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 19 Aug 2024 09:17:52 +0200 Subject: [PATCH] [no sq] Move shaders & remove dead Irrlicht tests (#15006) * Move irrlicht shaders to correct place * Remove unused Irrlicht tests --- client/shaders/Irrlicht | 1 - .../shaders/Irrlicht}/OneTextureBlend.fsh | 0 .../shaders/Irrlicht}/Renderer2D.fsh | 0 .../shaders/Irrlicht}/Renderer2D.vsh | 0 .../shaders/Irrlicht}/Renderer2D_noTex.fsh | 0 .../shaders/Irrlicht}/Solid.fsh | 0 .../shaders/Irrlicht}/Solid.vsh | 0 .../Irrlicht}/TransparentAlphaChannel.fsh | 0 .../Irrlicht}/TransparentAlphaChannelRef.fsh | 0 .../Irrlicht}/TransparentVertexAlpha.fsh | 0 irr/.github/workflows/build.yml | 310 ------------------ irr/CMakeLists.txt | 9 - irr/examples/AutomatedTest/main.cpp | 154 --------- irr/examples/AutomatedTest/test_array.cpp | 138 -------- irr/examples/AutomatedTest/test_helper.h | 33 -- irr/examples/AutomatedTest/test_string.cpp | 205 ------------ irr/examples/CMakeLists.txt | 17 - irr/media/coolguy_opt.x | Bin 34408 -> 0 bytes irr/media/cooltexture.png | Bin 4828 -> 0 bytes irr/scripts/ci-build-android.sh | 123 ------- irr/scripts/ci-build-mingw.sh | 70 ---- irr/scripts/ci-get-mingw.sh | 9 - irr/scripts/sha256sums.txt | 9 - irr/test/CMakeLists.txt | 32 -- irr/test/data/sample_16bpp_v3.bmp | Bin 654 -> 0 bytes irr/test/data/sample_16bpp_v7.bmp | Bin 738 -> 0 bytes irr/test/data/sample_24bpp.png | Bin 580 -> 0 bytes irr/test/data/sample_24bpp_down.tga | Bin 899 -> 0 bytes irr/test/data/sample_24bpp_rle_down.tga | Bin 844 -> 0 bytes irr/test/data/sample_24bpp_rle_up.tga | Bin 844 -> 0 bytes irr/test/data/sample_24bpp_up.tga | Bin 899 -> 0 bytes irr/test/data/sample_24bpp_v3.bmp | Bin 954 -> 0 bytes irr/test/data/sample_24bpp_v7.bmp | Bin 1038 -> 0 bytes irr/test/data/sample_4bpp_v3.bmp | Bin 298 -> 0 bytes irr/test/data/sample_8bpp.png | Bin 346 -> 0 bytes irr/test/data/sample_8bpp_down.tga | Bin 419 -> 0 bytes irr/test/data/sample_8bpp_rle_down.tga | Bin 444 -> 0 bytes irr/test/data/sample_8bpp_rle_up.tga | Bin 444 -> 0 bytes irr/test/data/sample_8bpp_up.tga | Bin 419 -> 0 bytes irr/test/data/sample_8bpp_v3.bmp | Bin 474 -> 0 bytes irr/test/data/sample_8bpp_v3_rle.bmp | Bin 524 -> 0 bytes irr/test/data/sample_8bpp_v7.bmp | Bin 558 -> 0 bytes irr/test/data/sample_8bpp_v7_rle.bmp | Bin 608 -> 0 bytes irr/test/image_loader_test.cpp | 162 --------- 44 files changed, 1272 deletions(-) delete mode 120000 client/shaders/Irrlicht rename {irr/media/Shaders => client/shaders/Irrlicht}/OneTextureBlend.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/Renderer2D.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/Renderer2D.vsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/Renderer2D_noTex.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/Solid.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/Solid.vsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/TransparentAlphaChannel.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/TransparentAlphaChannelRef.fsh (100%) rename {irr/media/Shaders => client/shaders/Irrlicht}/TransparentVertexAlpha.fsh (100%) delete mode 100644 irr/.github/workflows/build.yml delete mode 100644 irr/examples/AutomatedTest/main.cpp delete mode 100644 irr/examples/AutomatedTest/test_array.cpp delete mode 100644 irr/examples/AutomatedTest/test_helper.h delete mode 100644 irr/examples/AutomatedTest/test_string.cpp delete mode 100644 irr/examples/CMakeLists.txt delete mode 100755 irr/media/coolguy_opt.x delete mode 100755 irr/media/cooltexture.png delete mode 100755 irr/scripts/ci-build-android.sh delete mode 100755 irr/scripts/ci-build-mingw.sh delete mode 100755 irr/scripts/ci-get-mingw.sh delete mode 100644 irr/scripts/sha256sums.txt delete mode 100644 irr/test/CMakeLists.txt delete mode 100644 irr/test/data/sample_16bpp_v3.bmp delete mode 100644 irr/test/data/sample_16bpp_v7.bmp delete mode 100644 irr/test/data/sample_24bpp.png delete mode 100644 irr/test/data/sample_24bpp_down.tga delete mode 100644 irr/test/data/sample_24bpp_rle_down.tga delete mode 100644 irr/test/data/sample_24bpp_rle_up.tga delete mode 100644 irr/test/data/sample_24bpp_up.tga delete mode 100644 irr/test/data/sample_24bpp_v3.bmp delete mode 100644 irr/test/data/sample_24bpp_v7.bmp delete mode 100644 irr/test/data/sample_4bpp_v3.bmp delete mode 100644 irr/test/data/sample_8bpp.png delete mode 100644 irr/test/data/sample_8bpp_down.tga delete mode 100644 irr/test/data/sample_8bpp_rle_down.tga delete mode 100644 irr/test/data/sample_8bpp_rle_up.tga delete mode 100644 irr/test/data/sample_8bpp_up.tga delete mode 100644 irr/test/data/sample_8bpp_v3.bmp delete mode 100644 irr/test/data/sample_8bpp_v3_rle.bmp delete mode 100644 irr/test/data/sample_8bpp_v7.bmp delete mode 100644 irr/test/data/sample_8bpp_v7_rle.bmp delete mode 100644 irr/test/image_loader_test.cpp diff --git a/client/shaders/Irrlicht b/client/shaders/Irrlicht deleted file mode 120000 index 9349d3073..000000000 --- a/client/shaders/Irrlicht +++ /dev/null @@ -1 +0,0 @@ -../../irr/media/Shaders \ No newline at end of file diff --git a/irr/media/Shaders/OneTextureBlend.fsh b/client/shaders/Irrlicht/OneTextureBlend.fsh similarity index 100% rename from irr/media/Shaders/OneTextureBlend.fsh rename to client/shaders/Irrlicht/OneTextureBlend.fsh diff --git a/irr/media/Shaders/Renderer2D.fsh b/client/shaders/Irrlicht/Renderer2D.fsh similarity index 100% rename from irr/media/Shaders/Renderer2D.fsh rename to client/shaders/Irrlicht/Renderer2D.fsh diff --git a/irr/media/Shaders/Renderer2D.vsh b/client/shaders/Irrlicht/Renderer2D.vsh similarity index 100% rename from irr/media/Shaders/Renderer2D.vsh rename to client/shaders/Irrlicht/Renderer2D.vsh diff --git a/irr/media/Shaders/Renderer2D_noTex.fsh b/client/shaders/Irrlicht/Renderer2D_noTex.fsh similarity index 100% rename from irr/media/Shaders/Renderer2D_noTex.fsh rename to client/shaders/Irrlicht/Renderer2D_noTex.fsh diff --git a/irr/media/Shaders/Solid.fsh b/client/shaders/Irrlicht/Solid.fsh similarity index 100% rename from irr/media/Shaders/Solid.fsh rename to client/shaders/Irrlicht/Solid.fsh diff --git a/irr/media/Shaders/Solid.vsh b/client/shaders/Irrlicht/Solid.vsh similarity index 100% rename from irr/media/Shaders/Solid.vsh rename to client/shaders/Irrlicht/Solid.vsh diff --git a/irr/media/Shaders/TransparentAlphaChannel.fsh b/client/shaders/Irrlicht/TransparentAlphaChannel.fsh similarity index 100% rename from irr/media/Shaders/TransparentAlphaChannel.fsh rename to client/shaders/Irrlicht/TransparentAlphaChannel.fsh diff --git a/irr/media/Shaders/TransparentAlphaChannelRef.fsh b/client/shaders/Irrlicht/TransparentAlphaChannelRef.fsh similarity index 100% rename from irr/media/Shaders/TransparentAlphaChannelRef.fsh rename to client/shaders/Irrlicht/TransparentAlphaChannelRef.fsh diff --git a/irr/media/Shaders/TransparentVertexAlpha.fsh b/client/shaders/Irrlicht/TransparentVertexAlpha.fsh similarity index 100% rename from irr/media/Shaders/TransparentVertexAlpha.fsh rename to client/shaders/Irrlicht/TransparentVertexAlpha.fsh diff --git a/irr/.github/workflows/build.yml b/irr/.github/workflows/build.yml deleted file mode 100644 index f31521bd2..000000000 --- a/irr/.github/workflows/build.yml +++ /dev/null @@ -1,310 +0,0 @@ -name: build - -# build on c/cpp changes or workflow changes -on: - - push - - pull_request - -jobs: - - linux-gl: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get install g++ cmake libxi-dev libgl1-mesa-dev libpng-dev libjpeg-dev zlib1g-dev -qyy - - - name: Build - run: | - cmake . -DUSE_SDL2=OFF - make VERBOSE=1 -j2 - - - name: Test - run: | - ctest --output-on-failure - - - name: Package - run: | - make DESTDIR=$PWD/_install install - tar -c -I "gzip -9" -f irrlicht-linux.tar.gz -C ./_install/usr/local . - - - uses: actions/upload-artifact@v4 - with: - name: irrlicht-linux - path: ./irrlicht-linux.tar.gz - - linux-gles: - # Xvfb test is broken on 20.04 for unknown reasons (not our bug) - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get install g++ cmake libxi-dev libgles2-mesa-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - - - name: Build - run: | - cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=OFF -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON - make -j2 - - - name: Test (headless) - run: | - cd bin/Linux - ./AutomatedTest null - - - name: Test (Xvfb) - run: | - cd bin/Linux - LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest ogles2 - - linux-sdl: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev -qyy - - - name: Build - run: | - cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DCMAKE_BUILD_TYPE=Debug - make -j2 - - - name: Test (headless) - run: | - cd bin/Linux - ./AutomatedTest null - - linux-sdl-gl3: - # Xvfb test is broken on 20.04 for unknown reasons (not our bug) - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - - - name: Build - run: | - cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_OPENGL3=ON - make -j2 - - - name: Test (headless) - run: | - cd bin/Linux - ./AutomatedTest null - - - name: Test (Xvfb) - run: | - cd bin/Linux - LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest opengl3 - - linux-sdl-gles2: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get install g++ cmake libsdl2-dev libpng-dev libjpeg-dev zlib1g-dev xvfb -qyy - - - name: Build - run: | - cmake . -DBUILD_EXAMPLES=1 -DUSE_SDL2=ON -DENABLE_OPENGL=OFF -DENABLE_GLES2=ON - make -j2 - - - name: Test (headless) - run: | - cd bin/Linux - ./AutomatedTest null - - - name: Test (Xvfb) - run: | - cd bin/Linux - LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest ogles2 - - mingw: - name: "MinGW ${{matrix.config.variant}}${{matrix.config.extras}}" - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - config: - - {variant: win32, arch: i686} - - {variant: win64, arch: x86_64} - - {variant: win32, arch: i686, extras: "-sdl"} - - {variant: win64, arch: x86_64, extras: "-sdl"} - steps: - - uses: actions/checkout@v4 - - name: Install compiler - run: | - sudo apt-get update && sudo apt-get install cmake -qyy - ./scripts/ci-get-mingw.sh - - - name: Build - run: | - ./scripts/ci-build-mingw.sh package - env: - CC: ${{matrix.config.arch}}-w64-mingw32-clang - CXX: ${{matrix.config.arch}}-w64-mingw32-clang++ - extras: ${{matrix.config.extras}} - - - uses: actions/upload-artifact@v4 - with: - name: irrlicht-${{matrix.config.variant}}${{matrix.config.extras}} - path: ./irrlicht-${{matrix.config.variant}}${{matrix.config.extras}}.zip - - macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - brew update --auto-update - brew install cmake libpng jpeg - env: - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - - name: Build - run: | - cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1 - make -j3 - - - name: Test (headless) - run: | - ./bin/OSX/AutomatedTest null - - macos-sdl: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - name: Install deps - run: | - brew update --auto-update - brew install cmake libpng jpeg sdl2 - env: - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - - name: Build - run: | - cmake . -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_EXAMPLES=1 -DUSE_SDL2=1 - make -j3 - - msvc: - name: VS 2019 ${{ matrix.config.arch }} ${{ matrix.sdl.label }} - runs-on: windows-2019 - env: - VCPKG_VERSION: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 - # 2023.10.19 - vcpkg_packages: zlib libpng libjpeg-turbo - strategy: - fail-fast: false - matrix: - config: - - - arch: x86 - generator: "-G'Visual Studio 16 2019' -A Win32" - vcpkg_triplet: x86-windows - - - arch: x64 - generator: "-G'Visual Studio 16 2019' -A x64" - vcpkg_triplet: x64-windows - sdl: - - - use: FALSE - label: '(no SDL)' - vcpkg_packages: opengl-registry - - - use: TRUE - label: '(with SDL)' - vcpkg_packages: sdl2 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Restore from cache and run vcpkg - uses: lukka/run-vcpkg@v7 - with: - vcpkgArguments: ${{env.vcpkg_packages}} ${{matrix.sdl.vcpkg_packages}} - vcpkgDirectory: '${{ github.workspace }}\vcpkg' - appendedCacheKey: ${{ matrix.config.vcpkg_triplet }} - vcpkgGitCommitId: ${{ env.VCPKG_VERSION }} - vcpkgTriplet: ${{ matrix.config.vcpkg_triplet }} - - - name: CMake - run: | - cmake ${{matrix.config.generator}} ` - -DUSE_SDL2=${{matrix.sdl.use}} ` - -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake" ` - -DCMAKE_BUILD_TYPE=Release . - - - name: Build - run: cmake --build . --config Release - - - name: Create artifact folder - run: | - mkdir artifact/ - mkdir artifact/lib/ - - - name: Move dlls into artifact folder - run: move bin\Win32-VisualStudio\Release\* artifact\lib\ - - - name: Move includes into artifact folder - run: move include artifact/ - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: msvc-${{ matrix.config.arch }}-${{matrix.sdl.use}} - path: artifact/ - - android: - name: Android ${{ matrix.arch }} - runs-on: ubuntu-20.04 - env: - ndk_version: "r25c" - ANDROID_NDK: ${{ github.workspace }}/android-ndk - strategy: - matrix: - arch: [armeabi-v7a, arm64-v8a, x86, x86_64] - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install deps - run: | - sudo rm /var/lib/man-db/auto-update - sudo apt-get update - sudo apt-get install -qyy wget unzip zip gcc-multilib make cmake - - - name: Cache NDK - id: cache-ndk - uses: actions/cache@v4 - with: - key: android-ndk-${{ env.ndk_version }}-linux - path: ${{ env.ANDROID_NDK }} - - - name: Install NDK - run: | - wget --progress=bar:force "http://dl.google.com/android/repository/android-ndk-${ndk_version}-linux.zip" - unzip -q "android-ndk-${ndk_version}-linux.zip" - rm "android-ndk-${ndk_version}-linux.zip" - mv "android-ndk-${ndk_version}" "${ANDROID_NDK}" - if: ${{ steps.cache-ndk.outputs.cache-hit != 'true' }} - - - name: Build - run: ./scripts/ci-build-android.sh ${{ matrix.arch }} - - #- name: Upload Artifact - # uses: actions/upload-artifact@v4 - # with: - # name: irrlicht-android-${{ matrix.arch }} - # path: ${{ runner.temp }}/pkg/${{ matrix.arch }} diff --git a/irr/CMakeLists.txt b/irr/CMakeLists.txt index ccc00f271..dfd6b189a 100644 --- a/irr/CMakeLists.txt +++ b/irr/CMakeLists.txt @@ -11,14 +11,5 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE) endif() -# FIXME: tests need to be moved to MT if we want to keep them - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") -#enable_testing() add_subdirectory(src) -#add_subdirectory(test) - -#option(BUILD_EXAMPLES "Build example applications" FALSE) -#if(BUILD_EXAMPLES) -# add_subdirectory(examples) -#endif() diff --git a/irr/examples/AutomatedTest/main.cpp b/irr/examples/AutomatedTest/main.cpp deleted file mode 100644 index c9e5bab68..000000000 --- a/irr/examples/AutomatedTest/main.cpp +++ /dev/null @@ -1,154 +0,0 @@ -#include -#include -#include "exampleHelper.h" - -using namespace irr; - -static IrrlichtDevice *device = nullptr; -static int test_fail = 0; - -void test_irr_array(); -void test_irr_string(); - -static video::E_DRIVER_TYPE chooseDriver(core::stringc arg_) -{ - if (arg_ == "null") - return video::EDT_NULL; - if (arg_ == "ogles1") - return video::EDT_OGLES1; - if (arg_ == "ogles2") - return video::EDT_OGLES2; - if (arg_ == "opengl") - return video::EDT_OPENGL; - if (arg_ == "opengl3") - return video::EDT_OPENGL3; - std::cerr << "Unknown driver type: " << arg_.c_str() << ". Trying OpenGL." << std::endl; - return video::EDT_OPENGL; -} - -static inline void check(bool ok, const char *msg) -{ - if (!ok) { - test_fail++; - device->getLogger()->log((core::stringc("FAILED TEST: ") + msg).c_str(), ELL_ERROR); - } -} - -void run_unit_tests() -{ - std::cout << "Running unit tests:" << std::endl; - try { - test_irr_array(); - test_irr_string(); - } catch (const std::exception &e) { - std::cerr << e.what() << std::endl; - test_fail++; - } - std::cout << std::endl; -} - -int main(int argc, char *argv[]) -{ - run_unit_tests(); - - SIrrlichtCreationParameters p; - p.DriverType = chooseDriver(argc > 1 ? argv[1] : ""); - p.WindowSize = core::dimension2du(640, 480); - p.Vsync = true; - p.LoggingLevel = ELL_DEBUG; - - device = createDeviceEx(p); - if (!device) - return 1; - - { - u32 total = 0; - device->getOSOperator()->getSystemMemory(&total, nullptr); - core::stringc message = core::stringc("Total RAM in MiB: ") + core::stringc(total >> 10); - device->getLogger()->log(message.c_str(), ELL_INFORMATION); - check(total > 130 * 1024, "RAM amount"); - } - - device->setWindowCaption(L"Hello World!"); - device->setResizable(true); - - video::IVideoDriver *driver = device->getVideoDriver(); - scene::ISceneManager *smgr = device->getSceneManager(); - gui::IGUIEnvironment *guienv = device->getGUIEnvironment(); - - guienv->addStaticText(L"sample text", core::rect(10, 10, 110, 22), false); - - gui::IGUIButton *button = guienv->addButton( - core::rect(10, 30, 110, 30 + 32), 0, -1, L"sample button", - L"sample tooltip"); - - gui::IGUIEditBox *editbox = guienv->addEditBox(L"", - core::rect(10, 70, 60, 70 + 16)); - - const io::path mediaPath = getExampleMediaPath(); - - auto mesh_file = device->getFileSystem()->createAndOpenFile(mediaPath + "coolguy_opt.x"); - check(mesh_file, "mesh file loading"); - scene::IAnimatedMesh *mesh = smgr->getMesh(mesh_file); - check(mesh, "mesh loading"); - if (mesh_file) - mesh_file->drop(); - if (mesh) { - video::ITexture *tex = driver->getTexture(mediaPath + "cooltexture.png"); - check(tex, "texture loading"); - scene::IAnimatedMeshSceneNode *node = smgr->addAnimatedMeshSceneNode(mesh); - if (node) { - node->forEachMaterial([tex](video::SMaterial &mat) { - mat.Lighting = false; - mat.setTexture(0, tex); - }); - node->setFrameLoop(0, 29); - node->setAnimationSpeed(30); - } - } - - smgr->addCameraSceneNode(0, core::vector3df(0, 4, 5), core::vector3df(0, 2, 0)); - - s32 n = 0; - SEvent event; - device->getTimer()->start(); - - while (device->run()) { - if (device->getTimer()->getTime() >= 1000) { - device->getTimer()->setTime(0); - ++n; - if (n == 1) { // Tooltip display - bzero(&event, sizeof(SEvent)); - event.EventType = irr::EET_MOUSE_INPUT_EVENT; - event.MouseInput.Event = irr::EMIE_MOUSE_MOVED; - event.MouseInput.X = button->getAbsolutePosition().getCenter().X; - event.MouseInput.Y = button->getAbsolutePosition().getCenter().Y; - device->postEventFromUser(event); - } else if (n == 2) // Text input focus - guienv->setFocus(editbox); - else if (n == 3) { // Keypress for Text input - bzero(&event, sizeof(SEvent)); - event.EventType = irr::EET_KEY_INPUT_EVENT; - event.KeyInput.Char = L'a'; - event.KeyInput.Key = KEY_KEY_A; - event.KeyInput.PressedDown = true; - device->postEventFromUser(event); - event.KeyInput.PressedDown = false; - device->postEventFromUser(event); - } else - device->closeDevice(); - } - - driver->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, - video::SColor(255, 100, 100, 150)); - smgr->drawAll(); - guienv->drawAll(); - driver->endScene(); - } - - check(core::stringw(L"a") == editbox->getText(), "EditBox text"); - - device->getLogger()->log("Done.", ELL_INFORMATION); - device->drop(); - return test_fail > 0 ? 1 : 0; -} diff --git a/irr/examples/AutomatedTest/test_array.cpp b/irr/examples/AutomatedTest/test_array.cpp deleted file mode 100644 index 42959e913..000000000 --- a/irr/examples/AutomatedTest/test_array.cpp +++ /dev/null @@ -1,138 +0,0 @@ -#include -#include "test_helper.h" - -using namespace irr; -using core::array; - -static void test_basics() -{ - array v; - v.push_back(1); // 1 - v.push_front(2); // 2, 1 - v.insert(4, 0); // 4, 2, 1 - v.insert(3, 1); // 4, 3, 2, 1 - v.insert(0, 4); // 4, 3, 2, 1, 0 - UASSERTEQ(v.size(), 5); - UASSERTEQ(v[0], 4); - UASSERTEQ(v[1], 3); - UASSERTEQ(v[2], 2); - UASSERTEQ(v[3], 1); - UASSERTEQ(v[4], 0); - array w = v; - UASSERTEQ(w.size(), 5); - UASSERT(w == v); - w.clear(); - UASSERTEQ(w.size(), 0); - UASSERTEQ(w.allocated_size(), 0); - UASSERT(w.empty()); - w = v; - UASSERTEQ(w.size(), 5); - w.set_used(3); - UASSERTEQ(w.size(), 3); - UASSERTEQ(w[0], 4); - UASSERTEQ(w[1], 3); - UASSERTEQ(w[2], 2); - UASSERTEQ(w.getLast(), 2); - w.set_used(20); - UASSERTEQ(w.size(), 20); - w = v; - w.sort(); - UASSERTEQ(w.size(), 5); - UASSERTEQ(w[0], 0); - UASSERTEQ(w[1], 1); - UASSERTEQ(w[2], 2); - UASSERTEQ(w[3], 3); - UASSERTEQ(w[4], 4); - w.erase(0); - UASSERTEQ(w.size(), 4); - UASSERTEQ(w[0], 1); - UASSERTEQ(w[1], 2); - UASSERTEQ(w[2], 3); - UASSERTEQ(w[3], 4); - w.erase(1, 2); - UASSERTEQ(w.size(), 2); - UASSERTEQ(w[0], 1); - UASSERTEQ(w[1], 4); - w.swap(v); - UASSERTEQ(w.size(), 5); - UASSERTEQ(v.size(), 2); -} - -static void test_linear_searches() -{ - // Populate the array with 0, 1, 2, ..., 100, 100, 99, 98, 97, ..., 0 - array arr; - for (int i = 0; i <= 100; i++) - arr.push_back(i); - for (int i = 100; i >= 0; i--) - arr.push_back(i); - s32 end = arr.size() - 1; - for (int i = 0; i <= 100; i++) { - s32 index = arr.linear_reverse_search(i); - UASSERTEQ(index, end - i); - } - for (int i = 0; i <= 100; i++) { - s32 index = arr.linear_search(i); - UASSERTEQ(index, i); - } -} - -static void test_binary_searches() -{ - const auto &values = {3, 5, 1, 2, 5, 10, 19, 9, 7, 1, 2, 5, 8, 15}; - array arr; - for (int value : values) { - arr.push_back(value); - } - // Test the const form first, it uses a linear search without sorting - const array &carr = arr; - UASSERTEQ(carr.binary_search(20), -1); - UASSERTEQ(carr.binary_search(0), -1); - UASSERTEQ(carr.binary_search(1), 2); - - // Sorted: 1, 1, 2, 2, 3, 5, 5, 5, 7, 8, 9, 10, 15, 19 - UASSERTEQ(arr.binary_search(20), -1); - UASSERTEQ(arr.binary_search(0), -1); - - for (int value : values) { - s32 i = arr.binary_search(value); - UASSERTNE(i, -1); - UASSERTEQ(arr[i], value); - } - - s32 first, last; - first = arr.binary_search_multi(1, last); - UASSERTEQ(first, 0); - UASSERTEQ(last, 1); - - first = arr.binary_search_multi(2, last); - UASSERTEQ(first, 2); - UASSERTEQ(last, 3); - - first = arr.binary_search_multi(3, last); - UASSERTEQ(first, 4); - UASSERTEQ(last, 4); - - first = arr.binary_search_multi(4, last); - UASSERTEQ(first, -1); - - first = arr.binary_search_multi(5, last); - UASSERTEQ(first, 5); - UASSERTEQ(last, 7); - - first = arr.binary_search_multi(7, last); - UASSERTEQ(first, 8); - UASSERTEQ(last, 8); - - first = arr.binary_search_multi(19, last); - UASSERTEQ(first, 13); - UASSERTEQ(last, 13); -} - -void test_irr_array() -{ - test_basics(); - test_linear_searches(); - test_binary_searches(); - std::cout << " test_irr_array PASSED" << std::endl; -} diff --git a/irr/examples/AutomatedTest/test_helper.h b/irr/examples/AutomatedTest/test_helper.h deleted file mode 100644 index 5229eff29..000000000 --- a/irr/examples/AutomatedTest/test_helper.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once - -#include -#include - -class TestFailedException : public std::exception -{ -}; - -// Asserts the comparison specified by CMP is true, or fails the current unit test -#define UASSERTCMP(CMP, actual, expected) \ - do { \ - const auto &a = (actual); \ - const auto &e = (expected); \ - if (!CMP(a, e)) { \ - std::cout \ - << "Test assertion failed: " << #actual << " " << #CMP << " " \ - << #expected << std::endl \ - << " at " << __FILE__ << ":" << __LINE__ << std::endl \ - << " actual: " << a << std::endl \ - << " expected: " \ - << e << std::endl; \ - throw TestFailedException(); \ - } \ - } while (0) - -#define CMPEQ(a, e) (a == e) -#define CMPTRUE(a, e) (a) -#define CMPNE(a, e) (a != e) - -#define UASSERTEQ(actual, expected) UASSERTCMP(CMPEQ, actual, expected) -#define UASSERTNE(actual, nexpected) UASSERTCMP(CMPNE, actual, nexpected) -#define UASSERT(actual) UASSERTCMP(CMPTRUE, actual, true) diff --git a/irr/examples/AutomatedTest/test_string.cpp b/irr/examples/AutomatedTest/test_string.cpp deleted file mode 100644 index 4d1291f18..000000000 --- a/irr/examples/AutomatedTest/test_string.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include -#include -#include -#include -#include "test_helper.h" - -using namespace irr; -using namespace irr::core; - -#define CMPSTR(a, b) (!strcmp(a, b)) -#define UASSERTSTR(actual, expected) UASSERTCMP(CMPSTR, actual.c_str(), expected) - -static void test_basics() -{ - // ctor - stringc s; - UASSERTEQ(s.c_str()[0], '\0'); - s = stringc(0.1234567); - UASSERTSTR(s, "0.123457"); - s = stringc(0x1p+53); - UASSERTSTR(s, "9007199254740992.000000"); - s = stringc(static_cast(-102400)); - UASSERTSTR(s, "-102400"); - s = stringc(static_cast(102400)); - UASSERTSTR(s, "102400"); - s = stringc(static_cast(-1024000)); - UASSERTSTR(s, "-1024000"); - s = stringc(static_cast(1024000)); - UASSERTSTR(s, "1024000"); - s = stringc("YESno", 3); - UASSERTSTR(s, "YES"); - s = stringc(L"test", 4); - UASSERTSTR(s, "test"); - s = stringc("Hello World!"); - UASSERTSTR(s, "Hello World!"); - // operator= - s = stringw(L"abcdef"); - UASSERTSTR(s, "abcdef"); - s = L"abcdef"; - UASSERTSTR(s, "abcdef"); - s = static_cast(nullptr); - UASSERTSTR(s, ""); - // operator+ - s = s + stringc("foo"); - UASSERTSTR(s, "foo"); - s = s + L"bar"; - UASSERTSTR(s, "foobar"); - // the rest - s = "f"; - UASSERTEQ(s[0], 'f'); - const auto &sref = s; - UASSERTEQ(sref[0], 'f'); - UASSERT(sref == "f"); - UASSERT(sref == stringc("f")); - s = "a"; - UASSERT(sref < stringc("aa")); - UASSERT(sref < stringc("b")); - UASSERT(stringc("Z") < sref); - UASSERT(!(sref < stringc("a"))); - UASSERT(sref.lower_ignore_case("AA")); - UASSERT(sref.lower_ignore_case("B")); - UASSERT(!sref.lower_ignore_case("A")); - s = "dog"; - UASSERT(sref != "cat"); - UASSERT(sref != stringc("cat")); -} - -static void test_methods() -{ - stringc s; - const auto &sref = s; - s = "irrlicht"; - UASSERTEQ(sref.size(), 8); - UASSERT(!sref.empty()); - s.clear(); - UASSERTEQ(sref.size(), 0); - UASSERT(sref.empty()); - UASSERT(sref[0] == 0); - s = "\tAz#`"; - s.make_lower(); - UASSERTSTR(s, "\taz#`"); - s.make_upper(); - UASSERTSTR(s, "\tAZ#`"); - UASSERT(sref.equals_ignore_case("\taz#`")); - UASSERT(sref.equals_substring_ignore_case("Z#`", 2)); - s = "irrlicht"; - UASSERT(sref.equalsn(stringc("irr"), 3)); - UASSERT(sref.equalsn("irr", 3)); - s = "fo"; - s.append('o'); - UASSERTSTR(s, "foo"); - s.append("bar", 1); - UASSERTSTR(s, "foob"); - s.append("ar", 999999); - UASSERTSTR(s, "foobar"); - s = "nyan"; - s.append(stringc("cat")); - UASSERTSTR(s, "nyancat"); - s.append(stringc("sam"), 1); - UASSERTSTR(s, "nyancats"); - s = "fbar"; - s.insert(1, "ooXX", 2); - UASSERTSTR(s, "foobar"); - UASSERTEQ(sref.findFirst('o'), 1); - UASSERTEQ(sref.findFirst('X'), -1); - UASSERTEQ(sref.findFirstChar("abff", 2), 3); - UASSERTEQ(sref.findFirstCharNotInList("fobb", 2), 3); - UASSERTEQ(sref.findLast('o'), 2); - UASSERTEQ(sref.findLast('X'), -1); - UASSERTEQ(sref.findLastChar("abrr", 2), 4); - UASSERTEQ(sref.findLastCharNotInList("rabb", 2), 3); - UASSERTEQ(sref.findNext('o', 2), 2); - UASSERTEQ(sref.findLast('o', 1), 1); - s = "ob-oob"; - UASSERTEQ(sref.find("ob", 1), 4); - UASSERTEQ(sref.find("ob"), 0); - UASSERTEQ(sref.find("?"), -1); - s = "HOMEOWNER"; - stringc s2 = sref.subString(2, 4); - UASSERTSTR(s2, "MEOW"); - s2 = sref.subString(2, 4, true); - UASSERTSTR(s2, "meow"); - s = "land"; - s.replace('l', 's'); - UASSERTSTR(s, "sand"); - s = ">dog<"; - s.replace("dog", "cat"); - UASSERTSTR(s, ">cat<"); - s.replace("cat", "horse"); - UASSERTSTR(s, ">horse<"); - s.replace("horse", "gnu"); - UASSERTSTR(s, ">gnu<"); - s = " h e l p "; - s.remove(' '); - UASSERTSTR(s, "help"); - s.remove("el"); - UASSERTSTR(s, "hp"); - s = "irrlicht"; - s.removeChars("it"); - UASSERTSTR(s, "rrlch"); - s = "\r\nfoo bar "; - s.trim(); - UASSERTSTR(s, "foo bar"); - s = "foxo"; - s.erase(2); - UASSERTSTR(s, "foo"); - s = "a"; - s.append('\0'); - s.append('b'); - UASSERTEQ(s.size(), 3); - s.validate(); - UASSERTEQ(s.size(), 1); - UASSERTEQ(s.lastChar(), 'a'); - std::vector res; - s = "a,,b,c"; - s.split(res, ",aa", 1, true, false); - UASSERTEQ(res.size(), 3); - UASSERTSTR(res[0], "a"); - UASSERTSTR(res[2], "c"); - res.clear(); - s.split(res, ",", 1, false, true); - UASSERTEQ(res.size(), 7); - UASSERTSTR(res[0], "a"); - UASSERTSTR(res[2], ""); - for (int i = 0; i < 3; i++) - UASSERTSTR(res[2 * i + 1], ","); -} - -static void test_conv() -{ - // locale-independent - - stringw out; - utf8ToWString(out, "†††"); - UASSERTEQ(out.size(), 3); - for (int i = 0; i < 3; i++) - UASSERTEQ(static_cast(out[i]), 0x2020); - - stringc out2; - wStringToUTF8(out2, L"†††"); - UASSERTEQ(out2.size(), 9); - for (int i = 0; i < 3; i++) { - UASSERTEQ(static_cast(out2[3 * i]), 0xe2); - UASSERTEQ(static_cast(out2[3 * i + 1]), 0x80); - UASSERTEQ(static_cast(out2[3 * i + 2]), 0xa0); - } - - // locale-dependent - if (!setlocale(LC_CTYPE, "C.UTF-8")) - setlocale(LC_CTYPE, "UTF-8"); // macOS - - stringw out3; - multibyteToWString(out3, "†††"); - UASSERTEQ(out3.size(), 3); - for (int i = 0; i < 3; i++) - UASSERTEQ(static_cast(out3[i]), 0x2020); -} - -void test_irr_string() -{ - test_basics(); - test_methods(); - test_conv(); - std::cout << " test_irr_string PASSED" << std::endl; -} diff --git a/irr/examples/CMakeLists.txt b/irr/examples/CMakeLists.txt deleted file mode 100644 index 03553048e..000000000 --- a/irr/examples/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -set(IRREXAMPLES - # removed -) -if(UNIX) - list(APPEND IRREXAMPLES AutomatedTest) -endif() - -foreach(exname IN ITEMS ${IRREXAMPLES}) - file(GLOB sources "${CMAKE_CURRENT_SOURCE_DIR}/${exname}/*.cpp") - add_executable(${exname} ${sources}) - - target_include_directories(${exname} PRIVATE - ${CMAKE_SOURCE_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/${exname} - ) - target_link_libraries(${exname} IrrlichtMt) -endforeach() diff --git a/irr/media/coolguy_opt.x b/irr/media/coolguy_opt.x deleted file mode 100755 index e806d8315d5984926bc9d7c4f544c81340fcdfd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34408 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 Q(_lFP+Ka3d?DfC@1CwMTc>n+a diff --git a/irr/media/cooltexture.png b/irr/media/cooltexture.png deleted file mode 100755 index fcc219ac7ea95c2ad9b49ad0064835638cb51c69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4828 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 diff --git a/irr/scripts/ci-build-android.sh b/irr/scripts/ci-build-android.sh deleted file mode 100755 index a865e56a4..000000000 --- a/irr/scripts/ci-build-android.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash -e - -# NOTE: this code is mostly copied from minetest_android_deps -# - -png_ver=1.6.40 -jpeg_ver=3.0.1 - -download () { - get_tar_archive libpng "https://download.sourceforge.net/libpng/libpng-${png_ver}.tar.gz" - get_tar_archive libjpeg "https://download.sourceforge.net/libjpeg-turbo/libjpeg-turbo-${jpeg_ver}.tar.gz" -} - -build () { - # Build libjpg and libpng first because Irrlicht needs them - mkdir -p libpng - pushd libpng - $srcdir/libpng/configure --host=$CROSS_PREFIX - make && make DESTDIR=$PWD install - popd - - mkdir -p libjpeg - pushd libjpeg - cmake $srcdir/libjpeg "${CMAKE_FLAGS[@]}" -DENABLE_SHARED=OFF - make && make DESTDIR=$PWD install - popd - - local libpng=$PWD/libpng/usr/local/lib/libpng.a - local libjpeg=$(echo $PWD/libjpeg/opt/libjpeg-turbo/lib*/libjpeg.a) - cmake $srcdir/irrlicht "${CMAKE_FLAGS[@]}" \ - -DBUILD_SHARED_LIBS=OFF \ - -DPNG_LIBRARY=$libpng \ - -DPNG_PNG_INCLUDE_DIR=$(dirname "$libpng")/../include \ - -DJPEG_LIBRARY=$libjpeg \ - -DJPEG_INCLUDE_DIR=$(dirname "$libjpeg")/../include - make - - cp -p lib/Android/libIrrlichtMt.a $libpng $libjpeg $pkgdir/ - cp -a $srcdir/irrlicht/include $pkgdir/include - cp -a $srcdir/irrlicht/media/Shaders $pkgdir/Shaders -} - -get_tar_archive () { - # $1: folder to extract to, $2: URL - local filename="${2##*/}" - [ -d "$1" ] && return 0 - wget -c "$2" -O "$filename" - mkdir -p "$1" - tar -xaf "$filename" -C "$1" --strip-components=1 - rm "$filename" -} - -_setup_toolchain () { - local toolchain=$(echo "$ANDROID_NDK"/toolchains/llvm/prebuilt/*) - if [ ! -d "$toolchain" ]; then - echo "Android NDK path not specified or incorrect"; return 1 - fi - export PATH="$toolchain/bin:$ANDROID_NDK:$PATH" - - unset CFLAGS CPPFLAGS CXXFLAGS - - TARGET_ABI="$1" - API=21 - if [ "$TARGET_ABI" == armeabi-v7a ]; then - CROSS_PREFIX=armv7a-linux-androideabi - CFLAGS="-mthumb" - CXXFLAGS="-mthumb" - elif [ "$TARGET_ABI" == arm64-v8a ]; then - CROSS_PREFIX=aarch64-linux-android - elif [ "$TARGET_ABI" == x86 ]; then - CROSS_PREFIX=i686-linux-android - CFLAGS="-mssse3 -mfpmath=sse" - CXXFLAGS="-mssse3 -mfpmath=sse" - elif [ "$TARGET_ABI" == x86_64 ]; then - CROSS_PREFIX=x86_64-linux-android - else - echo "Invalid ABI given"; return 1 - fi - export CC=$CROSS_PREFIX$API-clang - export CXX=$CROSS_PREFIX$API-clang++ - export AR=llvm-ar - export RANLIB=llvm-ranlib - export CFLAGS="-fPIC ${CFLAGS}" - export CXXFLAGS="-fPIC ${CXXFLAGS}" - - CMAKE_FLAGS=( - "-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake" - "-DANDROID_ABI=$TARGET_ABI" "-DANDROID_NATIVE_API_LEVEL=$API" - "-DCMAKE_BUILD_TYPE=Release" - ) - - # make sure pkg-config doesn't interfere - export PKG_CONFIG=/bin/false - - export MAKEFLAGS="-j$(nproc)" -} - -_run_build () { - local abi=$1 - irrdir=$PWD - - mkdir -p $RUNNER_TEMP/src - cd $RUNNER_TEMP/src - srcdir=$PWD - [ -d irrlicht ] || ln -s $irrdir irrlicht - download - - builddir=$RUNNER_TEMP/build/irrlicht-$abi - pkgdir=$RUNNER_TEMP/pkg/$abi/Irrlicht - rm -rf "$pkgdir" - mkdir -p "$builddir" "$pkgdir" - - cd "$builddir" - build -} - -if [ $# -lt 1 ]; then - echo "Usage: ci-build-android.sh " - exit 1 -fi - -_setup_toolchain $1 -_run_build $1 diff --git a/irr/scripts/ci-build-mingw.sh b/irr/scripts/ci-build-mingw.sh deleted file mode 100755 index b1fdd7b99..000000000 --- a/irr/scripts/ci-build-mingw.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -e -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -[[ -z "$CC" || -z "$CXX" ]] && exit 255 -variant=win32 -[[ "$(basename "$CXX")" == "x86_64-"* ]] && variant=win64 -with_sdl=0 -[[ "$extras" == *"-sdl"* ]] && with_sdl=1 -#with_gl3=0 -#[[ "$extras" == *"-gl3"* ]] && with_gl3=1 - -libjpeg_version=3.0.1 -libpng_version=1.6.40 -sdl2_version=2.28.5 -zlib_version=1.3.1 - -download () { - local url=$1 - local filename=${url##*/} - local foldername=${filename%%[.-]*} - - [ -d "./$foldername" ] && return 0 - [ -e "$filename" ] || wget "$url" -O "$filename" - sha256sum -w -c <(grep -F "$filename" "$topdir/sha256sums.txt") - unzip -o "$filename" -d "$foldername" -} - -libs=$PWD/libs -mkdir -p libs -pushd libs -libhost="http://minetest.kitsunemimi.pw" -download "$libhost/llvm/libjpeg-$libjpeg_version-$variant.zip" -download "$libhost/llvm/libpng-$libpng_version-$variant.zip" -[ $with_sdl -eq 1 ] && download "$libhost/llvm/sdl2-$sdl2_version-$variant.zip" -download "$libhost/llvm/zlib-$zlib_version-$variant.zip" -popd - -tmp=( - -DCMAKE_SYSTEM_NAME=Windows \ - -DPNG_LIBRARY=$libs/libpng/lib/libpng.dll.a \ - -DPNG_PNG_INCLUDE_DIR=$libs/libpng/include \ - -DJPEG_LIBRARY=$libs/libjpeg/lib/libjpeg.dll.a \ - -DJPEG_INCLUDE_DIR=$libs/libjpeg/include \ - -DZLIB_LIBRARY=$libs/zlib/lib/libz.dll.a \ - -DZLIB_INCLUDE_DIR=$libs/zlib/include -) -if [ $with_sdl -eq 1 ]; then - tmp+=( - -DUSE_SDL2=ON - -DCMAKE_PREFIX_PATH=$libs/sdl2/lib/cmake - ) -else - tmp+=(-DUSE_SDL2=OFF) -fi -#[ $with_gl3 -eq 1 ] && tmp+=(-DENABLE_OPENGL=OFF -DENABLE_OPENGL3=ON) - -cmake . "${tmp[@]}" -make -j$(nproc) - -if [ "$1" = "package" ]; then - make DESTDIR=$PWD/_install install - # strip library - "${CXX%-*}-strip" --strip-unneeded _install/usr/local/lib/*.dll - # bundle the DLLs that are specific to Irrlicht (kind of a hack) - shopt -s nullglob - cp -p $libs/*/bin/{libjpeg,libpng,SDL}*.dll _install/usr/local/lib/ - # create a ZIP - (cd _install/usr/local; zip -9r "$OLDPWD/irrlicht-$variant$extras.zip" -- *) -fi -exit 0 diff --git a/irr/scripts/ci-get-mingw.sh b/irr/scripts/ci-get-mingw.sh deleted file mode 100755 index 9cf933fea..000000000 --- a/irr/scripts/ci-get-mingw.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e -topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -name=llvm-mingw-20231128-ucrt-ubuntu-20.04-x86_64.tar.xz -wget "https://github.com/mstorsjo/llvm-mingw/releases/download/20231128/$name" -O "$name" -sha256sum -w -c <(grep -F "$name" "$topdir/sha256sums.txt") -sudo tar -xaf "$name" -C /usr --strip-components=1 -rm -f "$name" diff --git a/irr/scripts/sha256sums.txt b/irr/scripts/sha256sums.txt deleted file mode 100644 index 0c080de3b..000000000 --- a/irr/scripts/sha256sums.txt +++ /dev/null @@ -1,9 +0,0 @@ -0f21ff3be90311092fe32e0e30878ef3ae9d9437b8d9ac25ef279e0d84e9bb8e llvm-mingw-20231128-ucrt-ubuntu-20.04-x86_64.tar.xz -53dfd31285f470fcf0dca88217c5cf9c557729af6d103afae5936e72ddc38d3c libjpeg-3.0.1-win32.zip -3d44e0740914e6878300e30653aad39e974821b5d7f6c2567e246b4eb04a5324 libjpeg-3.0.1-win64.zip -6baf4e819bfb3573760524b5dc9a04b5e479090d6d2046b86cf39a3107c0071f libpng-1.6.40-win32.zip -c02e029f01fce44baea7f4aecfd2564bd8a03507c0c6af8b03339ae0452c8b7d libpng-1.6.40-win64.zip -f9f890af960e92fd3f532f2e9ac00681c33bc67a722e000dfdaeb41b0064f1a0 sdl2-2.28.5-win32.zip -8dde2c6963544b7d8a2e87c128ebbdf51ad0e70c7e2df986ff4e963ce9996d9b sdl2-2.28.5-win64.zip -8af10515d57dbfee5d2106cd66cafa2adeb4270d4c6047ccbf7e8b5d2d50681c zlib-1.3.1-win32.zip -ad43f5d23052590c65633530743e5d622cc76b33c109072e6fd7b487aff56bca zlib-1.3.1-win64.zip diff --git a/irr/test/CMakeLists.txt b/irr/test/CMakeLists.txt deleted file mode 100644 index 6518f69c1..000000000 --- a/irr/test/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -link_libraries(IrrlichtMt::IrrlichtMt) -add_executable(image_loader_test image_loader_test.cpp) - -function(test_image_loader format expected input) - string(TOLOWER ${format} suffix) - add_test(NAME ImageLoader${format}-${input} COMMAND image_loader_test ${expected} data/sample_${input}.${suffix} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -endfunction() - -test_image_loader(BMP 16color-16bpp 4bpp_v3) -# test_image_loader(BMP 16color-16bpp 4bpp_v7) -# test_image_loader(BMP 16color-16bpp 4bpp_v3_rle) -# test_image_loader(BMP 16color-16bpp 4bpp_v7_rle) -test_image_loader(BMP 30color-16bpp 8bpp_v3) -# test_image_loader(BMP 30color-16bpp 8bpp_v7) -test_image_loader(BMP 30color-16bpp 8bpp_v3_rle) -# test_image_loader(BMP 30color-16bpp 8bpp_v7_rle) -# test_image_loader(BMP 30color-16bpp 16bpp_v3) -# test_image_loader(BMP 30color-16bpp 16bpp_v7) -test_image_loader(BMP 30color-24bpp 24bpp_v3) -test_image_loader(BMP 30color-24bpp 24bpp_v7) - -test_image_loader(PNG 30color-24bpp 8bpp) -test_image_loader(PNG 30color-24bpp 24bpp) - -test_image_loader(TGA 30color-32bpp 8bpp_up) -test_image_loader(TGA 30color-32bpp 8bpp_down) -# test_image_loader(TGA 30color-16bpp 8bpp_rle_up) -# test_image_loader(TGA 30color-16bpp 8bpp_rle_down) -test_image_loader(TGA 30color-24bpp 24bpp_up) -test_image_loader(TGA 30color-24bpp 24bpp_down) -test_image_loader(TGA 30color-24bpp 24bpp_rle_up) -test_image_loader(TGA 30color-24bpp 24bpp_rle_down) diff --git a/irr/test/data/sample_16bpp_v3.bmp b/irr/test/data/sample_16bpp_v3.bmp deleted file mode 100644 index 4b6fbcf501a0fb43d42dc6ab2d6a2b67acb8a0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmZ{iF=~ZC5QaCoKmq~VEz+b)nc~4)!OkL<5*B3Om6mqy%FHdEC$SVyky^+_HZ!|f zw28}1p&$Ru|F6~O&!dXZ2lqFw7p^C+2ldQdsW1Ni`kpGj;HIs%We={y2|bQD{zEDi>Xk$h2^`XdhGq;dDQ^AUlO+ocbJxVJk@Kh{C$n3hIGLY0B+)aZ z`HZZ$;64-{ZlVW`aHUyE6cg96-pI^8EV%V#TQ5}RLanVK@uGP{&z!hkFma`UN+~j> z3AK=Af4H7wK84Tu2nSWT3YT&Ocg|7VNRmoz7cxlfz-kIEIB@&0^^&(Zfac)XK~iLP zAHZ$>#LS4$95*9+NMvMkaGC4=IH(p(J7z8_My}*EI@S`sv?9vxe z@1!`+QmDlVBY*sN|1X!XKev#cPuY8^N2zOc;by*8^p)uvh}HEo|H>Su~65W6Eb0=6saHGH#U1IikPLQQc^g z0OOi1u{dysqmLf_)Q*kjtq!nSIB}2_g`HaTW77-M5mw91s2(v}?Hv8g)n^XNf%1$q vmlP9MNE)?hsorwe%8hGHR}|A^;(4!RAS`8Un{Os_%1S!P^^(r@-vjUq7yl1M diff --git a/irr/test/data/sample_24bpp.png b/irr/test/data/sample_24bpp.png deleted file mode 100644 index d38f5989c712b9edb7992dd8f84b78a2a962420a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P);t$FE~(5E9%T9 zp8{gF0Uiu{H{aNfAR>SFUL78mO;lMkQQvsH-FeCVxTmSEyRTzHK*v(Ob(Lkea*hmi z0`$Al$^G&u5W;YDgp3K(=|&42Nz~&0TDBnVI+ThvYPu+?b?)Xp<(b8o>G6Cc2ogYJ zRVw?b`0CKsTawjYyhU@HFtM`Mk;@klxX38fA>0D~!VjsR}z+dq~9&4Dz4H3rxW zb|(zO05Ya35W*tmT~QEN1L#DB+ZSuVki+=tAoQkfq#0&d>Ky?jSq7F?&q$A%Uph7W zWNfZ@B68@;+>XeYV`QZx?Pnb1DvAVlEdO0<@44BsR zWkW?>(aG1|z% S%MUvM0000sbf}{zguo6k3 zVrRNEqJelxcKpts*>N!%4$HFP+y8QAjhQm~%b01CF*CFFZ0l!A1smjT5ZYqX?mjS4 zdGK-&Js*xAYvY@v(e?4@r2ci<{5MyS>>YV>TqD`2HR42d*G*Mh=tA<-JpMazQADV?_l? z=RuzixvQRl_{8n-RuBOZC24t}VYL%*+%ize3Fy;lnQ@;&l?Rh$(kGM$t!yFua|KD4#O&kTcrqyTj>PDrGj)4gTfY@B*h^(Wx^r{$Oy$|6VNFJ zc~5x|NDN`+tcNU-CDD$Rh!D%bV+Qc z+VAgtyzcqW2d&3^>*la|b<{jAe4muQ&MKb*AkB&$a74N87i+d~4`cVQZLSCf;_q&X z&98(NI=^cS1HC`_+~X$&Q8^Z{P1)@nBCfqI$ap|@5|-;q5)m;zcqMr>LLsBMc<3rS zzEqaTy&$s%U@#lL%UUCflBDFV-#P|Tm^6w}r`1Nlg}h-Pba0X1@lsg+M)(|C|hdKg0Sn*(jpO&kr0H7;LsG& zP|=oKOH`nh-qZJZt|u{v%N?H2`905bu1dvK_cyK*YC?(5l;e8$G1&WjI|yD5+fRk| z%~9+6xOGzeIW2#m*S;?9nwhJ5(^LwT5mzb{dVQ5!R3>yf`~Iq_r~KnN0Py7O#;vAY zR~qhMUA*rc?U$6!`J+0$?jSD~(ow4xLfaG_S*ZPz;3LinK?5+71T;*C#G!&xol$hY zN;!%!UXZ3Vm+34FV7G^{+e0y=06oVL!T$Du zF07eEqzacAb;~q?IE52BRpgnlCjdJ)aAptPJRBMVM3D$FE6w?|=`InOu+j|J>6Ely$xfZ*^qv{R z$iFGOkTD?!=6oAT$GxdSWao}eVx?gRGb&%Tkne^p;pm8U%()4QatC3T_KO~Jm+=4N Z@BUjB=a-VpsfE7CeZUl+5g^f)R2}WEH#3qo!O2k6N z&U7}SfkaJqJa_Nx7?Z+qS++TQzWdE22&RJUHxo<;vw^L|GP{pSwflCEyc`anqT$Wa z;OcmAQvW`Uzs}m9=Xd?f&iHt6lm+~kwdK9{SF6&G=L9cLyuDkC)L!?z)Yk9uTGNyX zjV+fv$cuuc9kd;&fl2E@jqO21YQzP_kQO6g((JIQt+kvnH1e{ug-E3yq$LGG7+7>9 zym;sn(iu~bO<5C{Rs^N>LTSCiW+1L)f7?byUIa{8z_EG(l_f2M)ET3q;N_A7vooco z$up&4KxJ*CfRybdXC)>ig)o5RWHmidcLbrKUJptqnN+|^ES*%lP)I?f-q7f|_=|)Q zP&U=H=te;5^&lUI^_zOoNi$GdGED(PqeiXh_ad=lqd-CliInZq)dZ}yl;tAHXGs+m pHLzTy6m(BHm#p5u=Q8=1$^K+(E9<$9{AzxAX>M~NznGg3egMO@v-AJ} diff --git a/irr/test/data/sample_24bpp_v3.bmp b/irr/test/data/sample_24bpp_v3.bmp deleted file mode 100644 index 4684f14669f8f4a1601a63dcb70a92ed998200fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 954 zcmaizF-yZh7=|M{>)_(<;^gQLaQDY_3w7vXTy!uMq+SLWmm*TE7!bsz(7{Q>LB-8( zE~16Dn&y1Ie91MogK~F-!jtFy-iw=Ciwj=%x52r_US=<`=e!k8&)b>zyw!Ex*$*5x zh-K|Rr}h5FQTlc~eu>6+C&|rea@PDgkH0Uvqsxckb#Ho=*)k6MFD`8D;Pc(8`s+2t z&WU|+Z&BOZfm7S&BX(=rvO<%wRmbw6EU}Yr&T4XEJ67|TS#;{f2*@HfUf8tVV`|&z zgA)zgr)6K}>cH6vrx#sIZ&KrLMGf<>1e?us|^c@{Rq zVW$d*Rh-x?)Dv&y^AcOD=4^4-ls0?UbPlVycv}_JOe%qcn6&i6f+a9x>P73lFf4_a zS*fT{3me2zQN0g{8cGTejb4`f%+w1jQ)_IbC6>Y+%lpCI)MYkT7p#rknQW1-$(h=*(ilrFt0?^MWzGI`!Tti@bg?i1 diff --git a/irr/test/data/sample_24bpp_v7.bmp b/irr/test/data/sample_24bpp_v7.bmp deleted file mode 100644 index 1fa343188bc7deadf985d9ea5d274a1363e35c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcma)*J4*vW6otn}t%Z%fy+0z2m5u)-*n}vgF&1j!Mv%B$*w_S-V8nnRHh~mYA{Huk z+S!N(5;fWJyK{FZYf@;qGfW=eoO93J}ygv!mXrjQ=$Mg=ahrDDRSvnI6hS(7=e;-Xv6 zBTc7bxZK1o`B1PJrcE8R&V^iTTGY>9?N8s<=g(PF QQ8KJF@ZZB4|8v3q0IVCfB>(^b diff --git a/irr/test/data/sample_4bpp_v3.bmp b/irr/test/data/sample_4bpp_v3.bmp deleted file mode 100644 index 0cc06f3161f8e3f81cd682e77503e8d1d8b594ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmZ?r)na4-gEAng0mQ;U%n!tj3@kvBfnf^}3v)xT0FVvB|9jdP{Ib5hL4Z_ zGYFcccg$LI?%lfw3=D$CW)+=Kw!HAS?>BFqiwgzX!EX#??^?4j4ycA-{@dLfxAw$^ zg4iEFU%Rn;bsQgv&3HMteCMhd1_cHN1wmo6^qI5HfXq~21hOk;tpc%~{>tvoj-1L0 zV*4}5N~e}KtU3c?D~L;Hm$qtw*$mv$rl}3H)&Rv_?sD%o4Qo(Z1!B7ZotIY8x#|D| F0|4G7a;N|R diff --git a/irr/test/data/sample_8bpp.png b/irr/test/data/sample_8bpp.png deleted file mode 100644 index c81f816f4f031b4596304b336d80942b8d598b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)++atplo7P@c)0aK|9UknLF9QaZMnUG3b{yq`d9m91+wK&Byvx&U4-laBY@Q zRWa7FSO+(^Q&Fv0Vn|l&kxCmaynv`FY;1yv7%?D- zjgZ1h#6rc+bT*h+fMqj*L$k=ZVtMES-5c{ zBI1M$1SA{5g)5OPG-RhcHxdO$9lKI9NG{yX$KjrHE)Wmk1!MpcVzd0Eo}1BgU-ZIk zx%^qrclE}!{<^Lg&-Hpo?|sm#hvm}k^-6iM_Vjz>>3FlRw|^aM^>?-(%g*I)_d)-> z+dsPRAL(zWy}J|r{j7KMr~Gl*`+KE7dKLx3(B;Cf)?^sf8|Y!`K@taUh5I!NZ5q|H z$SZ6M5*EAMcce4WWzsMphKa!E(y=0JK+^~B4IJo{?b$`nQcP?S2QuX7(5$H} zbC4hd7X=$yV;!5Ih)t1zNo1Ks56o${eb7$tx-r2qLv9q(YbJu^6{0oHzNg#>h->?%?$RROJQbYwYTBNZN z5pg98fsiI(kt&1~CfI3bBPzH_*10*mMNawfa(LczfCT_k&<2_mG)S;3%Xa0hef_-J zcx6`yc4x`1ZQD0L?RMWDF50ax)%xw#W_AAV{@2d^*Y_j4_v6#_)uw<&hJkVK^wrWOt1~_&-QK}-$HKrnoWXD6Jc$bO7 zS9!gW#+V3#++i+91|;B+fW{aSY(WQ&<2t}lfR9Q{OtFa_FmB+Mg~%~;RT}A7qQ~1E zlLRHDbCIg3F10sqWpq%wz_Kw5i8+(K6r{ZbeHnV%o3zD%+#yRNzb3x=h>6F>G|H%-s49P7G`?0(+}Yva>r}H diff --git a/irr/test/data/sample_8bpp_up.tga b/irr/test/data/sample_8bpp_up.tga deleted file mode 100644 index a314e8689590abe043c1c5a60eb908aa77de8fe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmYk(Jxjwt7zgmn`=yukl3bH(lB?f9zeRB!|fM`3oxD*kwVnGlW zp@Wl%gNmEoTttOdZF62y2mj-b-LhEb_hUWc%}NH+k6~JkdF*CipXMUR(|*(=?A2lot`VtS7s_xlcNjcm5K5g_yu3qUMc_p diff --git a/irr/test/data/sample_8bpp_v3.bmp b/irr/test/data/sample_8bpp_v3.bmp deleted file mode 100644 index a890e64655127621d12b5418e1799341e990ad14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmYk2y)Oh&6vfYczwu^wzIOJRomq`WA^r%xKSn1MDjEtOiLeTdMg*}!A`y*5p%PIb zIy#LYvDlsGzFCEvoSVE~PTsxej!%r~C~Kek2q`A{Bn^x@FscE=V|@+LTS?ANla?SC zW>BooL(ZK*Zcafiw;&hqAzN+8gGtEs3lu9KcwH;-w9&)EW)D|eUC5nVoNafpyYqvh z{fxbnZ^-jc9A18*dns{r)4}Jp#PMAR?~esepF4PakuXh%dzGpmMz#82UY24C`u`xb zrs-rntE6E<#vo_R28cCzRuy3q)fCHf#j=d2LikA(*9UTD=g^x3dFly2j-!AzZ1U+% z%}gCGD%CiQB4WA$OV_l&(P0?X>kaZ*1~j!J@9$V^G;+9BmYO0-cpUg4v+Y5}GBOG? z=0Sz|b{U441uap`BW9={6*EB0VV>>VWoo#t5J=*{8DL)3uq+Bg%yo4dU0$Mp9{d7t CQCp}0 diff --git a/irr/test/data/sample_8bpp_v3_rle.bmp b/irr/test/data/sample_8bpp_v3_rle.bmp deleted file mode 100644 index d460d0fd66c87c67af2e4d3f302a7a44b1bdec51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmXw$y-wUf6orqy{u!@-#`dgtc6Zh^X{dOJ^mzruE2N7^k%}}>Btb%CDbmm&1SlYo zkWiXP6saOa0Z}^WXi$R0CfW7mj=hX@Mw(A&=AL`!`HLkR_1dR>o+L<|WPy=@McSS% zG@7Hck$$sGdI!Dw8rAw+=#>-btyj?RN6>56(4#}>gO|{oUr~K{!2L#rn~zic*qY+o zrwR1VCC;`d*xmVu>hKnOCx4;8JmT~DA56|QjxNS{{H}3)HOB9s6;5x*_;sg&*m3+Y ziW8pYoo)}_kisOy4CD=T4HH)B_$pL!KP$+X4jJo<;DI0h*zg=2R-w$P+h%C>E+pYQ?*S4%#oGi<`-NDT7wqTj; zVUxWx7&LVQSM?oP6ro6Y#yqe0#1&nTjtJA3anCe6^D7rtVR%HmWh&Hl14R{x`z-Rf i*G$Ls6$DbE5UJm0QPOfTpr5#bFeY=>{xa(`Kc^Flsbf zlxG>x)E)Wsj`db6hihf2DUyW8fgdv4ZYs+tQJ66gs?4{`X2>jPi87DOP=8crfXrc@ g?b~J7a9tsg#DP;`Ud^y9YKF{pbt+xH#PoUa1n?(co&W#< diff --git a/irr/test/data/sample_8bpp_v7_rle.bmp b/irr/test/data/sample_8bpp_v7_rle.bmp deleted file mode 100644 index d197b09a615ea5b00dc78ab57a7f2dc44d43fed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmb7?KTi}v7{;I7+ds4HpV{5Hz2RHbhLQppgPFF$x6@4Kc)c zMiLTZV?tqNj0F-p>1Yg)aKf?UJG%=#lX)jIzdSSV^S+sx$8$F7VOzjU+6f9yVS!Nq zPicAhsEG%3HUa3{S)XQRpFFQO_gLDrcQ^Fn3+TmF=vNDul$DI z7(st{2L1LMs`U%}eN*AjyBi#B-r)Pz1bXKezHCqMe&-t1=mfiaSI}QC@$ujvCI=dy zevWbZL*w(|80W_o_D{w*JEb~e$MM4`PI#7gd(-fSWGNwLAa9^+n6OI6SD}jgSwX^d z$e3r`3lJ|umB_5fyM_;qyyi-UeJOd7i{8|b)lWm%W$6%)Bo`u2*}!Y{c4;|%Ka_DI zvOFhlcj|Xs+p=0aS(f*DgI4c$U>WaWc1X7|9sXxV{q~p3&G+`$Ix5-f5x2Bo& GiT(q@QD6!H diff --git a/irr/test/image_loader_test.cpp b/irr/test/image_loader_test.cpp deleted file mode 100644 index 1dd4888f2..000000000 --- a/irr/test/image_loader_test.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace irr; - -struct ImageDesc -{ - const char *name; - video::ECOLOR_FORMAT format; - std::vector data; -}; - -template -std::vector to_byte_array(std::initializer_list in_data) -{ - std::vector data; - data.resize(sizeof(T) * in_data.size()); - memcpy(data.data(), in_data.begin(), data.size()); - return data; -} - -static const ImageDesc test_images[] = { - {"16color-16bpp", video::ECF_A1R5G5B5, to_byte_array({ - 0xb6df, 0xb6df, 0xb6df, 0xb6df, 0xc23f, 0xc23f, 0xd61f, 0xd61f, 0xea3f, 0xea3f, 0xfe5e, 0xfe5e, 0xfe7c, 0xfe7a, 0xfe7a, 0xfe97, 0xfeb5, 0xfeb5, 0xff16, - 0xb6df, 0xb6df, 0xff3f, 0xff3f, 0xc23f, 0xf2df, 0xf2df, 0xf2df, 0xea3f, 0xda7f, 0xda7f, 0xfe5e, 0xfe7a, 0xc23f, 0xbe7f, 0xbe7f, 0xfeb5, 0xfeb5, 0xfb76, - 0xb6df, 0xff9e, 0xc23f, 0xc23f, 0xc23f, 0xf2df, 0xd61f, 0xf2df, 0xea3f, 0xda7f, 0xfe5e, 0xda7f, 0xfe7a, 0xc23f, 0xfe97, 0xfeb5, 0xfeb5, 0xff16, 0xfb76, - 0xb6df, 0xff9e, 0xbe7f, 0xc23f, 0xd61f, 0xfe7c, 0xd61f, 0xf2df, 0xfe5e, 0xf2df, 0xfe7c, 0xda7f, 0xfe7a, 0xda7f, 0xbe7f, 0xfeb5, 0xff16, 0xff16, 0xfb76, - 0xb6df, 0xff9e, 0xc23f, 0xc23f, 0xd61f, 0xff3f, 0xd61f, 0xf2df, 0xfe5e, 0xda7f, 0xfe7c, 0xda7f, 0xfe7a, 0xc23f, 0xfeb5, 0xfeb5, 0xff16, 0xff16, 0xfb76, - 0xb6df, 0xbe7f, 0xff9e, 0xff3f, 0xd61f, 0xff3f, 0xf2df, 0xf2df, 0xfe5e, 0xf2df, 0xda7f, 0xfe97, 0xfe97, 0xda7f, 0xc23f, 0xda7f, 0xfb76, 0xfb76, 0xfb76, - 0xbe7f, 0xc23f, 0xc23f, 0xd61f, 0xd61f, 0xea3f, 0xea3f, 0xfe5e, 0xfe5e, 0xfe7c, 0xfe7c, 0xfe7a, 0xfe97, 0xfeb5, 0xfeb5, 0xfeb5, 0xfb76, 0xfb76, 0xfb76, - 0xbe7f, 0xc23f, 0xd61f, 0xd61f, 0xd61f, 0xea3f, 0xea3f, 0xfe5e, 0xfe5e, 0xfe7c, 0xfe97, 0xfe97, 0xfe97, 0xfeb5, 0xff16, 0xff16, 0xfb76, 0xfb76, 0xfb76, - 0xc23f, 0xff9e, 0xc23f, 0xd61f, 0xff3f, 0xea3f, 0xfe5e, 0xff3f, 0xfe7c, 0xfe7c, 0xf2df, 0xfe97, 0xfeb5, 0xfeb5, 0xda7f, 0xff16, 0xc23f, 0xc23f, 0xbe7f, - 0xc23f, 0xff9e, 0xff9e, 0xd61f, 0xff9e, 0xea3f, 0xff3f, 0xfe5e, 0xff3f, 0xfe7a, 0xf2df, 0xf2df, 0xfeb5, 0xf2df, 0xda7f, 0xfb76, 0xc23f, 0xfb76, 0xfb76, - 0xc23f, 0xff9e, 0xd61f, 0xff9e, 0xff9e, 0xfe5e, 0xff3f, 0xff3f, 0xff3f, 0xfe7a, 0xff3f, 0xfeb5, 0xf2df, 0xff16, 0xda7f, 0xfb76, 0xda7f, 0xda7f, 0xfb76, - 0xc23f, 0xff9e, 0xea3f, 0xea3f, 0xff9e, 0xfe5e, 0xff9e, 0xfe7c, 0xff3f, 0xfe97, 0xf2df, 0xfeb5, 0xfeb5, 0xff16, 0xf2df, 0xfb76, 0xda7f, 0xfb76, 0xfb76, - 0xd61f, 0xff9e, 0xd61f, 0xea3f, 0xff9e, 0xfe5e, 0xff9e, 0xfe7c, 0xff3f, 0xfe97, 0xff3f, 0xfeb5, 0xff16, 0xfb76, 0xda7f, 0xfb76, 0xda7f, 0xda7f, 0xc23f, - 0xd61f, 0xd61f, 0xea3f, 0xea3f, 0xea3f, 0xfe5e, 0xfe7c, 0xfe7a, 0xfe7a, 0xfe97, 0xfeb5, 0xff16, 0xff16, 0xfb76, 0xfb76, 0xfb76, 0xfb76, 0xfb76, 0xfb76, - 0xd61f, 0xd61f, 0xea3f, 0xfe5e, 0xfe5e, 0xfe7c, 0xfe7a, 0xfe7a, 0xfe97, 0xfeb5, 0xfeb5, 0xff16, 0xff16, 0xfb76, 0xfb76, 0xfb76, 0xfb76, 0xfb76, 0xfb76, - })}, - - {"30color-16bpp", video::ECF_A1R5G5B5, to_byte_array({ - 0xbabf, 0xbabf, 0xbabf, 0xbabf, 0xbe3f, 0xbdff, 0xc9ff, 0xda1f, 0xee3f, 0xee3f, 0xfa5f, 0xfe5e, 0xfe7c, 0xfe7b, 0xfe79, 0xfe97, 0xfeb5, 0xfed5, 0xff16, - 0xbabf, 0xbabf, 0xff1f, 0xff1f, 0xbdff, 0xfaff, 0xf2df, 0xeabf, 0xee3f, 0xe27f, 0xda7f, 0xfe5e, 0xfe7b, 0xc25f, 0xbe7f, 0xbe7f, 0xfeb5, 0xfed5, 0xff56, - 0xbabf, 0xff7e, 0xbe7f, 0xc25f, 0xbdff, 0xfaff, 0xda1f, 0xf2df, 0xee3f, 0xda7f, 0xfe5e, 0xce5f, 0xfe79, 0xce5f, 0xfe97, 0xfeb5, 0xfed5, 0xff16, 0xff56, - 0xbabf, 0xff7e, 0xbe7f, 0xbdff, 0xc9ff, 0xfaff, 0xda1f, 0xf2df, 0xfa5f, 0xeabf, 0xfe5e, 0xda7f, 0xfe79, 0xce5f, 0xc25f, 0xfeb5, 0xff16, 0xff16, 0xff76, - 0xbabf, 0xff7e, 0xc25f, 0xbdff, 0xc9ff, 0xff1f, 0xda1f, 0xf2df, 0xfa5f, 0xeabf, 0xfe7c, 0xda7f, 0xfe79, 0xce5f, 0xfeb5, 0xfed5, 0xff16, 0xff56, 0xff97, - 0xbabf, 0xbe7f, 0xff7e, 0xff5e, 0xda1f, 0xff1f, 0xfaff, 0xfaff, 0xfa5f, 0xf2df, 0xeabf, 0xfe79, 0xfe97, 0xda7f, 0xce5f, 0xce5f, 0xff56, 0xff76, 0xff97, - 0xbe7f, 0xc25f, 0xbdff, 0xc9ff, 0xda1f, 0xda1f, 0xee3f, 0xfa5f, 0xfa5f, 0xfe7c, 0xfe7b, 0xfe79, 0xfe97, 0xfeb5, 0xfed5, 0xfed5, 0xff76, 0xff76, 0xff97, - 0xbe7f, 0xbe3f, 0xc9ff, 0xc9ff, 0xda1f, 0xee3f, 0xee3f, 0xfa5f, 0xfe5e, 0xfe7c, 0xfe79, 0xfe97, 0xfe97, 0xfeb5, 0xff16, 0xff16, 0xff76, 0xff97, 0xff97, - 0xbe3f, 0xffbe, 0xc9ff, 0xda1f, 0xff5e, 0xee3f, 0xfa5f, 0xff1f, 0xfe7c, 0xfe7b, 0xf2df, 0xfe97, 0xfeb5, 0xfeb5, 0xda7f, 0xff76, 0xce5f, 0xbe3f, 0xc25f, - 0xbe3f, 0xffbe, 0xffbe, 0xda1f, 0xff7e, 0xfa5f, 0xff5e, 0xfe5e, 0xff1f, 0xfe79, 0xf2df, 0xf2df, 0xfeb5, 0xeabf, 0xda7f, 0xff76, 0xce5f, 0xff97, 0xff97, - 0xbdff, 0xffbe, 0xda1f, 0xff7e, 0xff7e, 0xfa5f, 0xff5e, 0xff1f, 0xff1f, 0xfe79, 0xfaff, 0xfeb5, 0xf2df, 0xff16, 0xe27f, 0xff97, 0xda7f, 0xce5f, 0xff97, - 0xbdff, 0xffbe, 0xda1f, 0xee3f, 0xffbe, 0xfa5f, 0xff7e, 0xfe7b, 0xff1f, 0xfe97, 0xfaff, 0xfeb5, 0xfed5, 0xff56, 0xeabf, 0xff97, 0xda7f, 0xff97, 0xff97, - 0xc9ff, 0xffbe, 0xda1f, 0xee3f, 0xff7e, 0xfa5f, 0xff7e, 0xfe7c, 0xff5e, 0xfe97, 0xfaff, 0xfed5, 0xff16, 0xff56, 0xeabf, 0xff97, 0xda7f, 0xda7f, 0xce5f, - 0xda1f, 0xda1f, 0xee3f, 0xee3f, 0xfa5f, 0xfe5e, 0xfe7c, 0xfe79, 0xfe79, 0xfe97, 0xfeb5, 0xfed5, 0xff16, 0xff56, 0xff97, 0xff97, 0xff97, 0xff97, 0xff97, - 0xda1f, 0xda1f, 0xee3f, 0xfa5f, 0xfe5e, 0xfe7c, 0xfe7b, 0xfe79, 0xfe97, 0xfeb5, 0xfed5, 0xff16, 0xff56, 0xff97, 0xff97, 0xff97, 0xff97, 0xff97, 0xff97, - })}, - - {"30color-24bpp", video::ECF_R8G8B8, { - 0x71, 0xaf, 0xff, 0x71, 0xaf, 0xff, 0x71, 0xaf, 0xff, 0x71, 0xaf, 0xff, 0x7b, 0x8b, 0xff, 0x7a, 0x7f, 0xff, 0x90, 0x7f, 0xff, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xfe, 0x96, 0xf0, 0xfd, 0x99, 0xe3, 0xfd, 0x9b, 0xda, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, - 0x71, 0xaf, 0xff, 0x71, 0xaf, 0xff, 0xff, 0xc6, 0xfc, 0xff, 0xc6, 0xfc, 0x7a, 0x7f, 0xff, 0xf7, 0xbe, 0xff, 0xe4, 0xb2, 0xfe, 0xd4, 0xa9, 0xff, 0xd9, 0x8c, 0xff, 0xc3, 0x98, 0xff, 0xb2, 0x9a, 0xff, 0xfe, 0x96, 0xf0, 0xfd, 0x9b, 0xda, 0x86, 0x93, 0xfe, 0x78, 0x9b, 0xff, 0x78, 0x9b, 0xff, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf8, 0xd2, 0xb3, - 0x71, 0xaf, 0xff, 0xfe, 0xdc, 0xf3, 0x78, 0x9b, 0xff, 0x86, 0x93, 0xfe, 0x7a, 0x7f, 0xff, 0xf7, 0xbe, 0xff, 0xb6, 0x85, 0xff, 0xe4, 0xb2, 0xfe, 0xd9, 0x8c, 0xff, 0xb2, 0x9a, 0xff, 0xfe, 0x96, 0xf0, 0x9a, 0x91, 0xff, 0xfc, 0x9f, 0xca, 0x9a, 0x91, 0xff, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, 0xf8, 0xd2, 0xb3, - 0x71, 0xaf, 0xff, 0xfe, 0xdc, 0xf3, 0x78, 0x9b, 0xff, 0x7a, 0x7f, 0xff, 0x90, 0x7f, 0xff, 0xf7, 0xbe, 0xff, 0xb6, 0x85, 0xff, 0xe4, 0xb2, 0xfe, 0xf4, 0x92, 0xfe, 0xd4, 0xa9, 0xff, 0xfe, 0x96, 0xf0, 0xb2, 0x9a, 0xff, 0xfc, 0x9f, 0xca, 0x9a, 0x91, 0xff, 0x86, 0x93, 0xfe, 0xfb, 0xa9, 0xab, 0xf9, 0xc6, 0xb1, 0xf9, 0xc6, 0xb1, 0xf8, 0xd8, 0xb5, - 0x71, 0xaf, 0xff, 0xfe, 0xdc, 0xf3, 0x86, 0x93, 0xfe, 0x7a, 0x7f, 0xff, 0x90, 0x7f, 0xff, 0xff, 0xc6, 0xfc, 0xb6, 0x85, 0xff, 0xe4, 0xb2, 0xfe, 0xf4, 0x92, 0xfe, 0xd4, 0xa9, 0xff, 0xfd, 0x99, 0xe3, 0xb2, 0x9a, 0xff, 0xfc, 0x9f, 0xca, 0x9a, 0x91, 0xff, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, 0xf8, 0xd2, 0xb3, 0xf8, 0xe4, 0xb9, - 0x71, 0xaf, 0xff, 0x78, 0x9b, 0xff, 0xfe, 0xdc, 0xf3, 0xff, 0xd0, 0xf7, 0xb6, 0x85, 0xff, 0xff, 0xc6, 0xfc, 0xf7, 0xbe, 0xff, 0xf7, 0xbe, 0xff, 0xf4, 0x92, 0xfe, 0xe4, 0xb2, 0xfe, 0xd4, 0xa9, 0xff, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xb2, 0x9a, 0xff, 0x9a, 0x91, 0xff, 0x9a, 0x91, 0xff, 0xf8, 0xd2, 0xb3, 0xf8, 0xd8, 0xb5, 0xf8, 0xe4, 0xb9, - 0x78, 0x9b, 0xff, 0x86, 0x93, 0xfe, 0x7a, 0x7f, 0xff, 0x90, 0x7f, 0xff, 0xb6, 0x85, 0xff, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xf4, 0x92, 0xfe, 0xfd, 0x99, 0xe3, 0xfd, 0x9b, 0xda, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xfa, 0xb6, 0xad, 0xf8, 0xd8, 0xb5, 0xf8, 0xd8, 0xb5, 0xf8, 0xe4, 0xb9, - 0x78, 0x9b, 0xff, 0x7b, 0x8b, 0xff, 0x90, 0x7f, 0xff, 0x90, 0x7f, 0xff, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xfe, 0x96, 0xf0, 0xfd, 0x99, 0xe3, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xf9, 0xc6, 0xb1, 0xf9, 0xc6, 0xb1, 0xf8, 0xd8, 0xb5, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, - 0x7b, 0x8b, 0xff, 0xff, 0xeb, 0xf2, 0x90, 0x7f, 0xff, 0xb6, 0x85, 0xff, 0xff, 0xd0, 0xf7, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xff, 0xc6, 0xfc, 0xfd, 0x99, 0xe3, 0xfd, 0x9b, 0xda, 0xe4, 0xb2, 0xfe, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfb, 0xa9, 0xab, 0xb2, 0x9a, 0xff, 0xf8, 0xd8, 0xb5, 0x9a, 0x91, 0xff, 0x7b, 0x8b, 0xff, 0x86, 0x93, 0xfe, - 0x7b, 0x8b, 0xff, 0xff, 0xeb, 0xf2, 0xff, 0xeb, 0xf2, 0xb6, 0x85, 0xff, 0xfe, 0xdc, 0xf3, 0xf4, 0x92, 0xfe, 0xff, 0xd0, 0xf7, 0xfe, 0x96, 0xf0, 0xff, 0xc6, 0xfc, 0xfc, 0x9f, 0xca, 0xe4, 0xb2, 0xfe, 0xe4, 0xb2, 0xfe, 0xfb, 0xa9, 0xab, 0xd4, 0xa9, 0xff, 0xb2, 0x9a, 0xff, 0xf8, 0xd8, 0xb5, 0x9a, 0x91, 0xff, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, - 0x7a, 0x7f, 0xff, 0xff, 0xeb, 0xf2, 0xb6, 0x85, 0xff, 0xfe, 0xdc, 0xf3, 0xfe, 0xdc, 0xf3, 0xf4, 0x92, 0xfe, 0xff, 0xd0, 0xf7, 0xff, 0xc6, 0xfc, 0xff, 0xc6, 0xfc, 0xfc, 0x9f, 0xca, 0xf7, 0xbe, 0xff, 0xfb, 0xa9, 0xab, 0xe4, 0xb2, 0xfe, 0xf9, 0xc6, 0xb1, 0xc3, 0x98, 0xff, 0xf8, 0xe4, 0xb9, 0xb2, 0x9a, 0xff, 0x9a, 0x91, 0xff, 0xf8, 0xe4, 0xb9, - 0x7a, 0x7f, 0xff, 0xff, 0xeb, 0xf2, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xff, 0xeb, 0xf2, 0xf4, 0x92, 0xfe, 0xfe, 0xdc, 0xf3, 0xfd, 0x9b, 0xda, 0xff, 0xc6, 0xfc, 0xfc, 0xa4, 0xbc, 0xf7, 0xbe, 0xff, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf8, 0xd2, 0xb3, 0xd4, 0xa9, 0xff, 0xf8, 0xe4, 0xb9, 0xb2, 0x9a, 0xff, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, - 0x90, 0x7f, 0xff, 0xff, 0xeb, 0xf2, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xfe, 0xdc, 0xf3, 0xf4, 0x92, 0xfe, 0xfe, 0xdc, 0xf3, 0xfd, 0x99, 0xe3, 0xff, 0xd0, 0xf7, 0xfc, 0xa4, 0xbc, 0xf7, 0xbe, 0xff, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, 0xf8, 0xd2, 0xb3, 0xd4, 0xa9, 0xff, 0xf8, 0xe4, 0xb9, 0xb2, 0x9a, 0xff, 0xb2, 0x9a, 0xff, 0x9a, 0x91, 0xff, - 0xb6, 0x85, 0xff, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xfe, 0x96, 0xf0, 0xfd, 0x99, 0xe3, 0xfc, 0x9f, 0xca, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, 0xf8, 0xd2, 0xb3, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, - 0xb6, 0x85, 0xff, 0xb6, 0x85, 0xff, 0xd9, 0x8c, 0xff, 0xf4, 0x92, 0xfe, 0xfe, 0x96, 0xf0, 0xfd, 0x99, 0xe3, 0xfd, 0x9b, 0xda, 0xfc, 0x9f, 0xca, 0xfc, 0xa4, 0xbc, 0xfb, 0xa9, 0xab, 0xfa, 0xb6, 0xad, 0xf9, 0xc6, 0xb1, 0xf8, 0xd2, 0xb3, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, 0xf8, 0xe4, 0xb9, - }}, - - {"30color-32bpp", video::ECF_A8R8G8B8, to_byte_array({ - 0xff71afff, 0xff71afff, 0xff71afff, 0xff71afff, 0xff7b8bff, 0xff7a7fff, 0xff907fff, 0xffb685ff, 0xffd98cff, 0xffd98cff, 0xfff492fe, 0xfffe96f0, 0xfffd99e3, 0xfffd9bda, 0xfffc9fca, 0xfffca4bc, 0xfffba9ab, 0xfffab6ad, 0xfff9c6b1, - 0xff71afff, 0xff71afff, 0xffffc6fc, 0xffffc6fc, 0xff7a7fff, 0xfff7beff, 0xffe4b2fe, 0xffd4a9ff, 0xffd98cff, 0xffc398ff, 0xffb29aff, 0xfffe96f0, 0xfffd9bda, 0xff8693fe, 0xff789bff, 0xff789bff, 0xfffba9ab, 0xfffab6ad, 0xfff8d2b3, - 0xff71afff, 0xfffedcf3, 0xff789bff, 0xff8693fe, 0xff7a7fff, 0xfff7beff, 0xffb685ff, 0xffe4b2fe, 0xffd98cff, 0xffb29aff, 0xfffe96f0, 0xff9a91ff, 0xfffc9fca, 0xff9a91ff, 0xfffca4bc, 0xfffba9ab, 0xfffab6ad, 0xfff9c6b1, 0xfff8d2b3, - 0xff71afff, 0xfffedcf3, 0xff789bff, 0xff7a7fff, 0xff907fff, 0xfff7beff, 0xffb685ff, 0xffe4b2fe, 0xfff492fe, 0xffd4a9ff, 0xfffe96f0, 0xffb29aff, 0xfffc9fca, 0xff9a91ff, 0xff8693fe, 0xfffba9ab, 0xfff9c6b1, 0xfff9c6b1, 0xfff8d8b5, - 0xff71afff, 0xfffedcf3, 0xff8693fe, 0xff7a7fff, 0xff907fff, 0xffffc6fc, 0xffb685ff, 0xffe4b2fe, 0xfff492fe, 0xffd4a9ff, 0xfffd99e3, 0xffb29aff, 0xfffc9fca, 0xff9a91ff, 0xfffba9ab, 0xfffab6ad, 0xfff9c6b1, 0xfff8d2b3, 0xfff8e4b9, - 0xff71afff, 0xff789bff, 0xfffedcf3, 0xffffd0f7, 0xffb685ff, 0xffffc6fc, 0xfff7beff, 0xfff7beff, 0xfff492fe, 0xffe4b2fe, 0xffd4a9ff, 0xfffc9fca, 0xfffca4bc, 0xffb29aff, 0xff9a91ff, 0xff9a91ff, 0xfff8d2b3, 0xfff8d8b5, 0xfff8e4b9, - 0xff789bff, 0xff8693fe, 0xff7a7fff, 0xff907fff, 0xffb685ff, 0xffb685ff, 0xffd98cff, 0xfff492fe, 0xfff492fe, 0xfffd99e3, 0xfffd9bda, 0xfffc9fca, 0xfffca4bc, 0xfffba9ab, 0xfffab6ad, 0xfffab6ad, 0xfff8d8b5, 0xfff8d8b5, 0xfff8e4b9, - 0xff789bff, 0xff7b8bff, 0xff907fff, 0xff907fff, 0xffb685ff, 0xffd98cff, 0xffd98cff, 0xfff492fe, 0xfffe96f0, 0xfffd99e3, 0xfffc9fca, 0xfffca4bc, 0xfffca4bc, 0xfffba9ab, 0xfff9c6b1, 0xfff9c6b1, 0xfff8d8b5, 0xfff8e4b9, 0xfff8e4b9, - 0xff7b8bff, 0xffffebf2, 0xff907fff, 0xffb685ff, 0xffffd0f7, 0xffd98cff, 0xfff492fe, 0xffffc6fc, 0xfffd99e3, 0xfffd9bda, 0xffe4b2fe, 0xfffca4bc, 0xfffba9ab, 0xfffba9ab, 0xffb29aff, 0xfff8d8b5, 0xff9a91ff, 0xff7b8bff, 0xff8693fe, - 0xff7b8bff, 0xffffebf2, 0xffffebf2, 0xffb685ff, 0xfffedcf3, 0xfff492fe, 0xffffd0f7, 0xfffe96f0, 0xffffc6fc, 0xfffc9fca, 0xffe4b2fe, 0xffe4b2fe, 0xfffba9ab, 0xffd4a9ff, 0xffb29aff, 0xfff8d8b5, 0xff9a91ff, 0xfff8e4b9, 0xfff8e4b9, - 0xff7a7fff, 0xffffebf2, 0xffb685ff, 0xfffedcf3, 0xfffedcf3, 0xfff492fe, 0xffffd0f7, 0xffffc6fc, 0xffffc6fc, 0xfffc9fca, 0xfff7beff, 0xfffba9ab, 0xffe4b2fe, 0xfff9c6b1, 0xffc398ff, 0xfff8e4b9, 0xffb29aff, 0xff9a91ff, 0xfff8e4b9, - 0xff7a7fff, 0xffffebf2, 0xffb685ff, 0xffd98cff, 0xffffebf2, 0xfff492fe, 0xfffedcf3, 0xfffd9bda, 0xffffc6fc, 0xfffca4bc, 0xfff7beff, 0xfffba9ab, 0xfffab6ad, 0xfff8d2b3, 0xffd4a9ff, 0xfff8e4b9, 0xffb29aff, 0xfff8e4b9, 0xfff8e4b9, - 0xff907fff, 0xffffebf2, 0xffb685ff, 0xffd98cff, 0xfffedcf3, 0xfff492fe, 0xfffedcf3, 0xfffd99e3, 0xffffd0f7, 0xfffca4bc, 0xfff7beff, 0xfffab6ad, 0xfff9c6b1, 0xfff8d2b3, 0xffd4a9ff, 0xfff8e4b9, 0xffb29aff, 0xffb29aff, 0xff9a91ff, - 0xffb685ff, 0xffb685ff, 0xffd98cff, 0xffd98cff, 0xfff492fe, 0xfffe96f0, 0xfffd99e3, 0xfffc9fca, 0xfffc9fca, 0xfffca4bc, 0xfffba9ab, 0xfffab6ad, 0xfff9c6b1, 0xfff8d2b3, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, - 0xffb685ff, 0xffb685ff, 0xffd98cff, 0xfff492fe, 0xfffe96f0, 0xfffd99e3, 0xfffd9bda, 0xfffc9fca, 0xfffca4bc, 0xfffba9ab, 0xfffab6ad, 0xfff9c6b1, 0xfff8d2b3, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, 0xfff8e4b9, - })}, - -}; - -void printImageBytes(const video::IImage *img) -{ - const auto *data = (u8 *)img->getData(); - const auto w = img->getPitch(); - const auto h = img->getDimension().Height; - for (int y = 0; y < h; y++) { - for (int k = 0; k < w; k++) { - std::printf("0x%02x, ", *data++); - } - std::printf("\n"); - } -} - -int main(int argc, char *argv[]) -try { - if (argc != 3) - throw std::runtime_error("Invalid arguments. Expected sample ID and image file name"); - - const ImageDesc *sample = nullptr; - for (auto &&image : test_images) { - if (strcmp(argv[1], image.name) == 0) - sample = ℑ - } - if (!sample) - throw std::runtime_error("Sample not found"); - - SIrrlichtCreationParameters p; - p.DriverType = video::EDT_NULL; - p.WindowSize = core::dimension2du(640, 480); - p.LoggingLevel = ELL_DEBUG; - - auto *device = createDeviceEx(p); - if (!device) - throw std::runtime_error("Failed to create device"); - - auto *driver = device->getVideoDriver(); - - auto *img = driver->createImageFromFile(argv[2]); - if (!img) - throw std::runtime_error("Failed to load image"); - - if (img->getDimension() != core::dimension2du{19, 15}) - throw std::runtime_error("Wrong image dimensions"); - - if (img->getColorFormat() != sample->format) - throw std::runtime_error("Wrong image format"); - - if (img->getImageDataSizeInBytes() != sample->data.size()) - throw std::logic_error("Image data size not equal to sample size"); - - if (memcmp(img->getData(), sample->data.data(), sample->data.size()) != 0) { - printImageBytes(img); - throw std::runtime_error("Wrong image contents"); - } - - img->drop(); - device->drop(); - - return 0; -} catch (const std::exception &e) { - std::printf("Test failed: %s\n", e.what()); - return 1; -}