window, opengl and pong examples now work on iOS

This commit is contained in:
Ceylo 2018-04-12 20:39:55 +02:00 committed by Lukas Dürrenberger
parent 82c2f4c05e
commit 1272b704d6
7 changed files with 48 additions and 10 deletions

View File

@ -22,11 +22,13 @@ endif()
if(SFML_BUILD_GRAPHICS) if(SFML_BUILD_GRAPHICS)
add_subdirectory(opengl) add_subdirectory(opengl)
if (NOT SFML_OS_IOS) if (NOT SFML_OS_IOS)
add_subdirectory(joystick) add_subdirectory(joystick)
add_subdirectory(shader) add_subdirectory(shader)
add_subdirectory(island)
endif() endif()
add_subdirectory(island)
if(SFML_OS_WINDOWS) if(SFML_OS_WINDOWS)
add_subdirectory(win32) add_subdirectory(win32)
elseif(SFML_OS_LINUX OR SFML_OS_FREEBSD) elseif(SFML_OS_LINUX OR SFML_OS_FREEBSD)

View File

@ -7,5 +7,5 @@ set(SRC ${SRCROOT}/Island.cpp)
# define the island target # define the island target
sfml_add_example(island GUI_APP sfml_add_example(island GUI_APP
SOURCES ${SRC} SOURCES ${SRC}
DEPENDS sfml-graphics sfml-window sfml-system DEPENDS sfml-graphics
RESOURCES_DIR resources) RESOURCES_DIR resources)

View File

@ -7,5 +7,5 @@ set(SRC ${SRCROOT}/Joystick.cpp)
# define the joystick target # define the joystick target
sfml_add_example(joystick GUI_APP sfml_add_example(joystick GUI_APP
SOURCES ${SRC} SOURCES ${SRC}
DEPENDS sfml-graphics sfml-window sfml-system DEPENDS sfml-graphics
RESOURCES_DIR resources) RESOURCES_DIR resources)

View File

@ -4,8 +4,17 @@ set(SRCROOT ${PROJECT_SOURCE_DIR}/examples/opengl)
# all source files # all source files
set(SRC ${SRCROOT}/OpenGL.cpp) set(SRC ${SRCROOT}/OpenGL.cpp)
if (SFML_OS_IOS)
set(RESOURCES
${CMAKE_CURRENT_SOURCE_DIR}/resources/background.jpg
${CMAKE_CURRENT_SOURCE_DIR}/resources/texture.jpg
${CMAKE_CURRENT_SOURCE_DIR}/resources/sansation.ttf)
set_source_files_properties(${RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
endif()
# define the opengl target # define the opengl target
sfml_add_example(opengl GUI_APP sfml_add_example(opengl GUI_APP
SOURCES ${SRC} SOURCES ${SRC}
BUNDLE_RESOURCES ${RESOURCES}
DEPENDS sfml-graphics OpenGL DEPENDS sfml-graphics OpenGL
RESOURCES_DIR resources) RESOURCES_DIR resources)

View File

@ -18,6 +18,14 @@
#define GL_SRGB8_ALPHA8 0x8C43 #define GL_SRGB8_ALPHA8 0x8C43
#endif #endif
std::string resourcesDir()
{
#ifdef SFML_SYSTEM_IOS
return "";
#else
return "resources/";
#endif
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// Entry point of application /// Entry point of application
@ -44,13 +52,13 @@ int main()
// Create a sprite for the background // Create a sprite for the background
sf::Texture backgroundTexture; sf::Texture backgroundTexture;
backgroundTexture.setSrgb(sRgb); backgroundTexture.setSrgb(sRgb);
if (!backgroundTexture.loadFromFile("resources/background.jpg")) if (!backgroundTexture.loadFromFile(resourcesDir() + "background.jpg"))
return EXIT_FAILURE; return EXIT_FAILURE;
sf::Sprite background(backgroundTexture); sf::Sprite background(backgroundTexture);
// Create some text to draw on top of our OpenGL object // Create some text to draw on top of our OpenGL object
sf::Font font; sf::Font font;
if (!font.loadFromFile("resources/sansation.ttf")) if (!font.loadFromFile(resourcesDir() + "sansation.ttf"))
return EXIT_FAILURE; return EXIT_FAILURE;
sf::Text text("SFML / OpenGL demo", font); sf::Text text("SFML / OpenGL demo", font);
sf::Text sRgbInstructions("Press space to toggle sRGB conversion", font); sf::Text sRgbInstructions("Press space to toggle sRGB conversion", font);
@ -64,7 +72,7 @@ int main()
// Load a texture to apply to our 3D cube // Load a texture to apply to our 3D cube
sf::Texture texture; sf::Texture texture;
if (!texture.loadFromFile("resources/texture.jpg")) if (!texture.loadFromFile(resourcesDir() + "texture.jpg"))
return EXIT_FAILURE; return EXIT_FAILURE;
// Attempt to generate a mipmap for our cube texture // Attempt to generate a mipmap for our cube texture
@ -189,7 +197,7 @@ int main()
if (mipmapEnabled) if (mipmapEnabled)
{ {
// We simply reload the texture to disable mipmapping // We simply reload the texture to disable mipmapping
if (!texture.loadFromFile("resources/texture.jpg")) if (!texture.loadFromFile(resourcesDir() + "texture.jpg"))
return EXIT_FAILURE; return EXIT_FAILURE;
mipmapEnabled = false; mipmapEnabled = false;

View File

@ -3,9 +3,16 @@ set(SRCROOT ${PROJECT_SOURCE_DIR}/examples/pong)
# all source files # all source files
set(SRC ${SRCROOT}/Pong.cpp) set(SRC ${SRCROOT}/Pong.cpp)
if (SFML_OS_IOS)
set(RESOURCES
${CMAKE_CURRENT_SOURCE_DIR}/resources/ball.wav
${CMAKE_CURRENT_SOURCE_DIR}/resources/sansation.ttf)
set_source_files_properties(${RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
endif()
# define the pong target # define the pong target
sfml_add_example(pong GUI_APP sfml_add_example(pong GUI_APP
SOURCES ${SRC} SOURCES ${SRC}
BUNDLE_RESOURCES ${RESOURCES}
DEPENDS sfml-audio sfml-graphics DEPENDS sfml-audio sfml-graphics
RESOURCES_DIR resources) RESOURCES_DIR resources)

View File

@ -8,6 +8,18 @@
#include <ctime> #include <ctime>
#include <cstdlib> #include <cstdlib>
#ifdef SFML_SYSTEM_IOS
#include <SFML/Main.hpp>
#endif
std::string resourcesDir()
{
#ifdef SFML_SYSTEM_IOS
return "";
#else
return "resources/";
#endif
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// Entry point of application /// Entry point of application
@ -33,7 +45,7 @@ int main()
// Load the sounds used in the game // Load the sounds used in the game
sf::SoundBuffer ballSoundBuffer; sf::SoundBuffer ballSoundBuffer;
if (!ballSoundBuffer.loadFromFile("resources/ball.wav")) if (!ballSoundBuffer.loadFromFile(resourcesDir() + "ball.wav"))
return EXIT_FAILURE; return EXIT_FAILURE;
sf::Sound ballSound(ballSoundBuffer); sf::Sound ballSound(ballSoundBuffer);
@ -63,7 +75,7 @@ int main()
// Load the text font // Load the text font
sf::Font font; sf::Font font;
if (!font.loadFromFile("resources/sansation.ttf")) if (!font.loadFromFile(resourcesDir() + "sansation.ttf"))
return EXIT_FAILURE; return EXIT_FAILURE;
// Initialize the pause message // Initialize the pause message