From 472bfb3e2283521ab48481fea5e5c941b5d57bbf Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Sun, 2 Aug 2026 21:45:49 +0300 Subject: [PATCH] Somehow it is working --- proj-ios/fetch_dependencies.sh | 99 ++++++++ proj-ios/shadowoverbishkek/libpng/.gitkeep | 0 .../project.pbxproj | 136 ++++++++++- .../shadowoverbishkek/mainios.cpp | 65 ++++- .../shadowoverbishkek/pnglibconf.h | 228 ++++++++++++++++++ proj-ios/shadowoverbishkek/zlib/.gitkeep | 0 6 files changed, 525 insertions(+), 3 deletions(-) create mode 100755 proj-ios/fetch_dependencies.sh create mode 100644 proj-ios/shadowoverbishkek/libpng/.gitkeep create mode 100644 proj-ios/shadowoverbishkek/shadowoverbishkek/pnglibconf.h create mode 100644 proj-ios/shadowoverbishkek/zlib/.gitkeep diff --git a/proj-ios/fetch_dependencies.sh b/proj-ios/fetch_dependencies.sh new file mode 100755 index 0000000..3c9c7a2 --- /dev/null +++ b/proj-ios/fetch_dependencies.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +THIRDPARTY_DIR="$PROJECT_ROOT/thirdparty" + +mkdir -p "$THIRDPARTY_DIR" + +echo "==========================================" +echo "Fetching Dependencies into: $THIRDPARTY_DIR" +echo "==========================================" + +download_and_extract() { + local name="$1" + local url="$2" + local archive_name="$3" + local target_dir_name="$4" + + local archive_path="$THIRDPARTY_DIR/$archive_name" + local target_path="$THIRDPARTY_DIR/$target_dir_name" + + if [ -d "$target_path" ]; then + echo "[$name] Already extracted in $target_path. Skipping." + return 0 + fi + + if [ ! -f "$archive_path" ]; then + echo "[$name] Downloading $archive_name to $THIRDPARTY_DIR ..." + curl -L "$url" -o "$archive_path" + else + echo "[$name] Archive $archive_name already exists in $THIRDPARTY_DIR." + fi + + echo "[$name] Extracting $archive_name ..." + + if [[ "$archive_name" == *.tar.gz ]] || [[ "$archive_name" == *.tgz ]]; then + if ! tar -xzf "$archive_path" -C "$THIRDPARTY_DIR"; then + echo "[$name] Extraction failed! Removing corrupt archive $archive_path." + rm -f "$archive_path" + exit 1 + fi + elif [[ "$archive_name" == *.tar.bz2 ]]; then + if ! tar -xjf "$archive_path" -C "$THIRDPARTY_DIR"; then + echo "[$name] Extraction failed! Removing corrupt archive $archive_path." + rm -f "$archive_path" + exit 1 + fi + elif [[ "$archive_name" == *.zip ]]; then + if ! unzip -q "$archive_path" -d "$THIRDPARTY_DIR"; then + echo "[$name] Extraction failed! Removing corrupt archive $archive_path." + rm -f "$archive_path" + exit 1 + fi + fi + + echo "[$name] Unpacked successfully." +} + +# 1. zlib +download_and_extract \ + "zlib" \ + "https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz" \ + "zlib-1.3.1.tar.gz" \ + "zlib-1.3.1" + +# 2. bzip2 +download_and_extract \ + "bzip2" \ + "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" \ + "bzip2-1.0.8.tar.gz" \ + "bzip2-1.0.8" + +# 3. libpng +download_and_extract \ + "libpng" \ + "https://downloads.sourceforge.net/project/libpng/libpng16/1.6.43/libpng-1.6.43.tar.gz" \ + "libpng-1.6.43.tar.gz" \ + "libpng-1.6.43" + +# 4. libzip +download_and_extract \ + "libzip" \ + "https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz" \ + "libzip-1.10.1.tar.gz" \ + "libzip-1.10.1" + +# 5. Boost +download_and_extract \ + "Boost" \ + "https://archives.boost.io/release/1.84.0/source/boost_1_84_0.tar.gz" \ + "boost_1_84_0.tar.gz" \ + "boost_1_84_0" + +echo "==========================================" +echo "All dependencies downloaded and unpacked!" +echo "==========================================" + diff --git a/proj-ios/shadowoverbishkek/libpng/.gitkeep b/proj-ios/shadowoverbishkek/libpng/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/proj-ios/shadowoverbishkek/shadowoverbishkek.xcodeproj/project.pbxproj b/proj-ios/shadowoverbishkek/shadowoverbishkek.xcodeproj/project.pbxproj index e0404ae..df55d5a 100644 --- a/proj-ios/shadowoverbishkek/shadowoverbishkek.xcodeproj/project.pbxproj +++ b/proj-ios/shadowoverbishkek/shadowoverbishkek.xcodeproj/project.pbxproj @@ -7,6 +7,33 @@ objects = { /* Begin PBXBuildFile section */ + CE802FFF301FBF0700EB3FA5 /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF1301FBF0700EB3FA5 /* compress.c */; }; + CE803000301FBF0700EB3FA5 /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF8301FBF0700EB3FA5 /* infback.c */; }; + CE803002301FBF0700EB3FA5 /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FFC301FBF0700EB3FA5 /* trees.c */; }; + CE803003301FBF0700EB3FA5 /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FFB301FBF0700EB3FA5 /* inftrees.c */; }; + CE803004301FBF0700EB3FA5 /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF3301FBF0700EB3FA5 /* deflate.c */; }; + CE803008301FBF0700EB3FA5 /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FFA301FBF0700EB3FA5 /* inflate.c */; }; + CE803009301FBF0700EB3FA5 /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF9301FBF0700EB3FA5 /* inffast.c */; }; + CE80300A301FBF0700EB3FA5 /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FFD301FBF0700EB3FA5 /* uncompr.c */; }; + CE80300B301FBF0700EB3FA5 /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF0301FBF0700EB3FA5 /* adler32.c */; }; + CE80300C301FBF0700EB3FA5 /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FFE301FBF0700EB3FA5 /* zutil.c */; }; + CE80300D301FBF0700EB3FA5 /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = CE802FF2301FBF0700EB3FA5 /* crc32.c */; }; + CE80301F301FC03F00EB3FA5 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803013301FC03F00EB3FA5 /* pngpread.c */; }; + CE803021301FC03F00EB3FA5 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80301E301FC03F00EB3FA5 /* pngwutil.c */; }; + CE803022301FC03F00EB3FA5 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803010301FC03F00EB3FA5 /* pngerror.c */; }; + CE803023301FC03F00EB3FA5 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80301B301FC03F00EB3FA5 /* pngwio.c */; }; + CE803024301FC03F00EB3FA5 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803012301FC03F00EB3FA5 /* pngmem.c */; }; + CE803025301FC03F00EB3FA5 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803011301FC03F00EB3FA5 /* pngget.c */; }; + CE803026301FC03F00EB3FA5 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80301D301FC03F00EB3FA5 /* pngwtran.c */; }; + CE803027301FC03F00EB3FA5 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803014301FC03F00EB3FA5 /* pngread.c */; }; + CE803028301FC03F00EB3FA5 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803016301FC03F00EB3FA5 /* pngrtran.c */; }; + CE803029301FC03F00EB3FA5 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803018301FC03F00EB3FA5 /* pngset.c */; }; + CE80302A301FC03F00EB3FA5 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80301A301FC03F00EB3FA5 /* pngtrans.c */; }; + CE80302B301FC03F00EB3FA5 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80301C301FC03F00EB3FA5 /* pngwrite.c */; }; + CE80302C301FC03F00EB3FA5 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803017301FC03F00EB3FA5 /* pngrutil.c */; }; + CE80302D301FC03F00EB3FA5 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = CE803015301FC03F00EB3FA5 /* pngrio.c */; }; + CE803030301FC0E600EB3FA5 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = CE80302F301FC0E600EB3FA5 /* png.c */; }; + CE803032301FC79A00EB3FA5 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE803031301FC79A00EB3FA5 /* OpenGLES.framework */; }; CEFECA7E301FB69D00FBB2C4 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEFECA6A301FB5DF00FBB2C4 /* SDL2.framework */; }; CEFECA7F301FB69D00FBB2C4 /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CEFECA6A301FB5DF00FBB2C4 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ @@ -36,6 +63,33 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + CE802FF0301FBF0700EB3FA5 /* adler32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/adler32.c"; sourceTree = ""; }; + CE802FF1301FBF0700EB3FA5 /* compress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/compress.c"; sourceTree = ""; }; + CE802FF2301FBF0700EB3FA5 /* crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/crc32.c"; sourceTree = ""; }; + CE802FF3301FBF0700EB3FA5 /* deflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/deflate.c"; sourceTree = ""; }; + CE802FF8301FBF0700EB3FA5 /* infback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/infback.c"; sourceTree = ""; }; + CE802FF9301FBF0700EB3FA5 /* inffast.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/inffast.c"; sourceTree = ""; }; + CE802FFA301FBF0700EB3FA5 /* inflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/inflate.c"; sourceTree = ""; }; + CE802FFB301FBF0700EB3FA5 /* inftrees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/inftrees.c"; sourceTree = ""; }; + CE802FFC301FBF0700EB3FA5 /* trees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/trees.c"; sourceTree = ""; }; + CE802FFD301FBF0700EB3FA5 /* uncompr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/uncompr.c"; sourceTree = ""; }; + CE802FFE301FBF0700EB3FA5 /* zutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/zlib-1.3.1/zutil.c"; sourceTree = ""; }; + CE803010301FC03F00EB3FA5 /* pngerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngerror.c"; sourceTree = ""; }; + CE803011301FC03F00EB3FA5 /* pngget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngget.c"; sourceTree = ""; }; + CE803012301FC03F00EB3FA5 /* pngmem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngmem.c"; sourceTree = ""; }; + CE803013301FC03F00EB3FA5 /* pngpread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngpread.c"; sourceTree = ""; }; + CE803014301FC03F00EB3FA5 /* pngread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngread.c"; sourceTree = ""; }; + CE803015301FC03F00EB3FA5 /* pngrio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngrio.c"; sourceTree = ""; }; + CE803016301FC03F00EB3FA5 /* pngrtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngrtran.c"; sourceTree = ""; }; + CE803017301FC03F00EB3FA5 /* pngrutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngrutil.c"; sourceTree = ""; }; + CE803018301FC03F00EB3FA5 /* pngset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngset.c"; sourceTree = ""; }; + CE80301A301FC03F00EB3FA5 /* pngtrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngtrans.c"; sourceTree = ""; }; + CE80301B301FC03F00EB3FA5 /* pngwio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngwio.c"; sourceTree = ""; }; + CE80301C301FC03F00EB3FA5 /* pngwrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngwrite.c"; sourceTree = ""; }; + CE80301D301FC03F00EB3FA5 /* pngwtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngwtran.c"; sourceTree = ""; }; + CE80301E301FC03F00EB3FA5 /* pngwutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/pngwutil.c"; sourceTree = ""; }; + CE80302F301FC0E600EB3FA5 /* png.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/libpng-1.6.43/png.c"; sourceTree = ""; }; + CE803031301FC79A00EB3FA5 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; CEFECA3C301FB52F00FBB2C4 /* shadowoverbishkek.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = shadowoverbishkek.app; sourceTree = BUILT_PRODUCTS_DIR; }; CEFECA57301FB5DE00FBB2C4 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = "/Users/user/Projects/shadow-over-bishkek001/thirdparty/SDL-release-2.32.10/Xcode/SDL/SDL.xcodeproj"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -54,15 +108,58 @@ buildActionMask = 2147483647; files = ( CEFECA7E301FB69D00FBB2C4 /* SDL2.framework in Frameworks */, + CE803032301FC79A00EB3FA5 /* OpenGLES.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + CE802FEF301FBEDA00EB3FA5 /* zlib */ = { + isa = PBXGroup; + children = ( + CE802FF0301FBF0700EB3FA5 /* adler32.c */, + CE802FF1301FBF0700EB3FA5 /* compress.c */, + CE802FF2301FBF0700EB3FA5 /* crc32.c */, + CE802FF3301FBF0700EB3FA5 /* deflate.c */, + CE802FF8301FBF0700EB3FA5 /* infback.c */, + CE802FF9301FBF0700EB3FA5 /* inffast.c */, + CE802FFA301FBF0700EB3FA5 /* inflate.c */, + CE802FFB301FBF0700EB3FA5 /* inftrees.c */, + CE802FFC301FBF0700EB3FA5 /* trees.c */, + CE802FFD301FBF0700EB3FA5 /* uncompr.c */, + CE802FFE301FBF0700EB3FA5 /* zutil.c */, + ); + path = zlib; + sourceTree = ""; + }; + CE80300F301FBFC600EB3FA5 /* libpng */ = { + isa = PBXGroup; + children = ( + CE803010301FC03F00EB3FA5 /* pngerror.c */, + CE803011301FC03F00EB3FA5 /* pngget.c */, + CE803012301FC03F00EB3FA5 /* pngmem.c */, + CE803013301FC03F00EB3FA5 /* pngpread.c */, + CE803014301FC03F00EB3FA5 /* pngread.c */, + CE803015301FC03F00EB3FA5 /* pngrio.c */, + CE803016301FC03F00EB3FA5 /* pngrtran.c */, + CE803017301FC03F00EB3FA5 /* pngrutil.c */, + CE803018301FC03F00EB3FA5 /* pngset.c */, + CE80301A301FC03F00EB3FA5 /* pngtrans.c */, + CE80301B301FC03F00EB3FA5 /* pngwio.c */, + CE80301C301FC03F00EB3FA5 /* pngwrite.c */, + CE80301D301FC03F00EB3FA5 /* pngwtran.c */, + CE80301E301FC03F00EB3FA5 /* pngwutil.c */, + CE80302F301FC0E600EB3FA5 /* png.c */, + ); + path = libpng; + sourceTree = ""; + }; CEFECA33301FB52F00FBB2C4 = { isa = PBXGroup; children = ( + CE80300F301FBFC600EB3FA5 /* libpng */, + CE802FEF301FBEDA00EB3FA5 /* zlib */, CEFECA57301FB5DE00FBB2C4 /* SDL.xcodeproj */, CEFECA3E301FB52F00FBB2C4 /* shadowoverbishkek */, CEFECA7D301FB69D00FBB2C4 /* Frameworks */, @@ -89,6 +186,7 @@ CEFECA7D301FB69D00FBB2C4 /* Frameworks */ = { isa = PBXGroup; children = ( + CE803031301FC79A00EB3FA5 /* OpenGLES.framework */, ); name = Frameworks; sourceTree = ""; @@ -184,6 +282,32 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CE802FFF301FBF0700EB3FA5 /* compress.c in Sources */, + CE803000301FBF0700EB3FA5 /* infback.c in Sources */, + CE803002301FBF0700EB3FA5 /* trees.c in Sources */, + CE803003301FBF0700EB3FA5 /* inftrees.c in Sources */, + CE803004301FBF0700EB3FA5 /* deflate.c in Sources */, + CE803008301FBF0700EB3FA5 /* inflate.c in Sources */, + CE803030301FC0E600EB3FA5 /* png.c in Sources */, + CE803009301FBF0700EB3FA5 /* inffast.c in Sources */, + CE80300A301FBF0700EB3FA5 /* uncompr.c in Sources */, + CE80301F301FC03F00EB3FA5 /* pngpread.c in Sources */, + CE803021301FC03F00EB3FA5 /* pngwutil.c in Sources */, + CE803022301FC03F00EB3FA5 /* pngerror.c in Sources */, + CE803023301FC03F00EB3FA5 /* pngwio.c in Sources */, + CE803024301FC03F00EB3FA5 /* pngmem.c in Sources */, + CE803025301FC03F00EB3FA5 /* pngget.c in Sources */, + CE803026301FC03F00EB3FA5 /* pngwtran.c in Sources */, + CE803027301FC03F00EB3FA5 /* pngread.c in Sources */, + CE803028301FC03F00EB3FA5 /* pngrtran.c in Sources */, + CE803029301FC03F00EB3FA5 /* pngset.c in Sources */, + CE80302A301FC03F00EB3FA5 /* pngtrans.c in Sources */, + CE80302B301FC03F00EB3FA5 /* pngwrite.c in Sources */, + CE80302C301FC03F00EB3FA5 /* pngrutil.c in Sources */, + CE80302D301FC03F00EB3FA5 /* pngrio.c in Sources */, + CE80300B301FBF0700EB3FA5 /* adler32.c in Sources */, + CE80300C301FBF0700EB3FA5 /* zutil.c in Sources */, + CE80300D301FBF0700EB3FA5 /* crc32.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -320,7 +444,11 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = R89DR83966; GENERATE_INFOPLIST_FILE = YES; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../thirdparty/SDL-release-2.32.10/include\""; + HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/../../thirdparty/SDL-release-2.32.10/include\"", + "\"$(SRCROOT)/../../thirdparty/zlib-1.3.1\"", + "\"$(SRCROOT)/../../thirdparty/libpng-1.6.43\"", + ); INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UIMainStoryboardFile = ""; @@ -356,7 +484,11 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = R89DR83966; GENERATE_INFOPLIST_FILE = YES; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../thirdparty/SDL-release-2.32.10/include\""; + HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/../../thirdparty/SDL-release-2.32.10/include\"", + "\"$(SRCROOT)/../../thirdparty/zlib-1.3.1\"", + "\"$(SRCROOT)/../../thirdparty/libpng-1.6.43\"", + ); INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UIMainStoryboardFile = ""; diff --git a/proj-ios/shadowoverbishkek/shadowoverbishkek/mainios.cpp b/proj-ios/shadowoverbishkek/shadowoverbishkek/mainios.cpp index b252c66..46ca072 100644 --- a/proj-ios/shadowoverbishkek/shadowoverbishkek/mainios.cpp +++ b/proj-ios/shadowoverbishkek/shadowoverbishkek/mainios.cpp @@ -6,10 +6,73 @@ // #include "SDL.h" +#include #include int main(int argc, char** argv) { - std::cout << "Hello x" << std::endl; + // Initialize SDL video subsystem + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + std::cerr << "Failed to initialize SDL: " << SDL_GetError() << std::endl; + return -1; + } + + // Configure OpenGL ES 2.0 context attributes for iOS + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); + + // Create full screen window for iOS display + SDL_Window* window = SDL_CreateWindow( + "Shadow Over Bishkek", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + 0, + 0, + SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN | SDL_WINDOW_ALLOW_HIGHDPI + ); + + if (!window) { + std::cerr << "Failed to create window: " << SDL_GetError() << std::endl; + SDL_Quit(); + return -1; + } + + // Create the OpenGL ES context + SDL_GLContext glContext = SDL_GL_CreateContext(window); + if (!glContext) { + std::cerr << "Failed to create OpenGL context: " << SDL_GetError() << std::endl; + SDL_DestroyWindow(window); + SDL_Quit(); + return -1; + } + + // Set clear color to red (R=1, G=0, B=0, A=1) + glClearColor(1.0f, 0.0f, 0.0f, 1.0f); + + bool running = true; + SDL_Event event; + + // Main rendering loop + while (running) { + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + running = false; + } + } + + // Clear color buffer with red color + glClear(GL_COLOR_BUFFER_BIT); + + // Swap the OpenGL buffers to display the frame + SDL_GL_SwapWindow(window); + } + + // Cleanup resources + SDL_GL_DeleteContext(glContext); + SDL_DestroyWindow(window); + SDL_Quit(); + return 0; } + diff --git a/proj-ios/shadowoverbishkek/shadowoverbishkek/pnglibconf.h b/proj-ios/shadowoverbishkek/shadowoverbishkek/pnglibconf.h new file mode 100644 index 0000000..16c7e7a --- /dev/null +++ b/proj-ios/shadowoverbishkek/shadowoverbishkek/pnglibconf.h @@ -0,0 +1,228 @@ +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.6.43 */ + +/* Copyright (c) 2018-2024 Cosmin Truta */ +/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H + +#define PNG_ARM_NEON_OPT 0 + +/* options */ +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +#undef PNG_ARM_NEON_API_SUPPORTED +/*#undef PNG_ + _CHECK_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +/*#undef PNG_DISABLE_ADLER32_CHECK_SUPPORTED*/ +#define PNG_EASY_ACCESS_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +/*#undef PNG_MIPS_MMI_API_SUPPORTED*/ +/*#undef PNG_MIPS_MMI_CHECK_SUPPORTED*/ +/*#undef PNG_MIPS_MSA_API_SUPPORTED*/ +/*#undef PNG_MIPS_MSA_CHECK_SUPPORTED*/ +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED +#define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_eXIf_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_OPTION_SUPPORTED +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_eXIf_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_eXIf_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED +/* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_LINKAGE_API extern +#define PNG_LINKAGE_CALLBACK extern +#define PNG_LINKAGE_DATA extern +#define PNG_LINKAGE_FUNCTION extern +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_USER_CHUNK_CACHE_MAX 1000 +#define PNG_USER_CHUNK_MALLOC_MAX 8000000 +#define PNG_USER_HEIGHT_MAX 1000000 +#define PNG_USER_WIDTH_MAX 1000000 +#define PNG_ZBUF_SIZE 8192 +#define PNG_ZLIB_VERNUM 0 /* unknown */ +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ +#endif /* PNGLCONF_H */ diff --git a/proj-ios/shadowoverbishkek/zlib/.gitkeep b/proj-ios/shadowoverbishkek/zlib/.gitkeep new file mode 100644 index 0000000..e69de29