mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-23 22:37:55 +02:00
fix creating SDL window, enforce landscape
This commit is contained in:
@@ -56,12 +56,19 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>UIFileSharingEnabled</key>
|
<key>UIFileSharingEnabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>UILaunchStoryboardName</key>
|
||||||
|
<string>LaunchScreen</string>
|
||||||
<key>UIRequiredDeviceCapabilities</key>
|
<key>UIRequiredDeviceCapabilities</key>
|
||||||
<array>
|
<array>
|
||||||
<string>armv7</string>
|
<string>armv7</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIRequiresFullScreen</key>
|
<key>UIRequiresFullScreen</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
|
</array>
|
||||||
<key>UIUserInterfaceStyle</key>
|
<key>UIUserInterfaceStyle</key>
|
||||||
<string>Light</string>
|
<string>Light</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
|||||||
@@ -1027,11 +1027,13 @@ static bool recreateWindow(int w, int h, int bpp, bool fullscreen, int displayIn
|
|||||||
if (displayIndex < 0)
|
if (displayIndex < 0)
|
||||||
displayIndex = 0;
|
displayIndex = 0;
|
||||||
}
|
}
|
||||||
|
#ifndef VCMI_IOS
|
||||||
if(!checkVideoMode(displayIndex, w, h))
|
if(!checkVideoMode(displayIndex, w, h))
|
||||||
{
|
{
|
||||||
logGlobal->error("Error: SDL says that %dx%d resolution is not available!", w, h);
|
logGlobal->error("Error: SDL says that %dx%d resolution is not available!", w, h);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bool bufOnScreen = (screenBuf == screen);
|
bool bufOnScreen = (screenBuf == screen);
|
||||||
bool realFullscreen = settings["video"]["realFullscreen"].Bool();
|
bool realFullscreen = settings["video"]["realFullscreen"].Bool();
|
||||||
@@ -1124,6 +1126,23 @@ static bool recreateWindow(int w, int h, int bpp, bool fullscreen, int displayIn
|
|||||||
{
|
{
|
||||||
logGlobal->error("Can't fix aspect ratio for screen");
|
logGlobal->error("Can't fix aspect ratio for screen");
|
||||||
}
|
}
|
||||||
|
#elif defined(VCMI_IOS)
|
||||||
|
auto createWindow = [displayIndex](Uint32 extraFlags = 0) {
|
||||||
|
mainWindow = SDL_CreateWindow(NAME.c_str(), SDL_WINDOWPOS_UNDEFINED_DISPLAY(displayIndex), SDL_WINDOWPOS_UNDEFINED_DISPLAY(displayIndex), 0, 0, SDL_WINDOW_FULLSCREEN/*_DESKTOP*/ | SDL_WINDOW_BORDERLESS | SDL_WINDOW_ALLOW_HIGHDPI | extraFlags);
|
||||||
|
return mainWindow != nullptr;
|
||||||
|
};
|
||||||
|
if (!createWindow(SDL_WINDOW_METAL))
|
||||||
|
{
|
||||||
|
logGlobal->warn("Metal unavailable, using OpenGL ES");
|
||||||
|
createWindow();
|
||||||
|
}
|
||||||
|
SDL_SetHint(SDL_HINT_ORIENTATIONS, "LandscapeLeft LandscapeRight"); // TODO: isn't setting in Info.plist not enough?
|
||||||
|
SDL_SetHint(SDL_HINT_IOS_HIDE_HOME_INDICATOR, "1");
|
||||||
|
//SDL_HINT_RETURN_KEY_HIDES_IME
|
||||||
|
|
||||||
|
logGlobal->info("before SDL_GetWindowSize %dx%d", w, h);
|
||||||
|
SDL_GetWindowSize(mainWindow, &w, &h);
|
||||||
|
logGlobal->info("after SDL_GetWindowSize %dx%d", w, h);
|
||||||
#else
|
#else
|
||||||
|
|
||||||
if(fullscreen)
|
if(fullscreen)
|
||||||
@@ -1161,7 +1180,7 @@ static bool recreateWindow(int w, int h, int bpp, bool fullscreen, int displayIn
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef VCMI_ANDROID
|
#if !defined(VCMI_ANDROID) && !defined(VCMI_IOS)
|
||||||
|
|
||||||
if(fullscreen)
|
if(fullscreen)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -179,6 +179,9 @@ elseif(APPLE_IOS)
|
|||||||
target_link_libraries(vcmiclient PRIVATE
|
target_link_libraries(vcmiclient PRIVATE
|
||||||
"-framework Foundation -framework UIKit -framework QuartzCore -framework CoreGraphics -framework CoreServices -framework ImageIO" # SDL2_image
|
"-framework Foundation -framework UIKit -framework QuartzCore -framework CoreGraphics -framework CoreServices -framework ImageIO" # SDL2_image
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_sources(vcmiclient PRIVATE ${CMAKE_SOURCE_DIR}/client/LaunchScreen.storyboard)
|
||||||
|
set_source_files_properties(${CMAKE_SOURCE_DIR}/client/LaunchScreen.storyboard PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(vcmiclient PRIVATE
|
target_link_libraries(vcmiclient PRIVATE
|
||||||
|
|||||||
27
client/LaunchScreen.storyboard
Normal file
27
client/LaunchScreen.storyboard
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||||
|
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||||
|
<dependencies>
|
||||||
|
<deployment version="2304" identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
|
||||||
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="EHf-IW-A2E">
|
||||||
|
<objects>
|
||||||
|
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<viewLayoutGuide key="safeArea" id="Jnx-JV-IwA"/>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="53" y="375"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
</document>
|
||||||
Reference in New Issue
Block a user