Ver a proveniência

some fix

pull/3880/head
blueloveTH há 1 ano
ascendente
cometimento
cae863af45
3 ficheiros alterados com 38 adições e 32 eliminações
  1. +6
    -3
      projects/Xcode15/main.c
  2. +30
    -29
      src/platforms/rcore_ios.c
  3. +2
    -0
      src/rcore.c

+ 6
- 3
projects/Xcode15/main.c Ver ficheiro

@ -20,15 +20,17 @@
//------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------
typedef enum GameScreen { LOGO = 0, TITLE, GAMEPLAY, ENDING } GameScreen; typedef enum GameScreen { LOGO = 0, TITLE, GAMEPLAY, ENDING } GameScreen;
const int screenWidth = 800;
const int screenHeight = 450;
int screenWidth = 0;
int screenHeight = 0;
GameScreen currentScreen = LOGO; GameScreen currentScreen = LOGO;
int framesCounter = 0; // Useful to count frames int framesCounter = 0; // Useful to count frames
void ios_ready(){ void ios_ready(){
// Initialization // Initialization
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic screen manager");
InitWindow(0, 0, "raylib [core] example - basic screen manager");
screenWidth = GetScreenWidth();
screenHeight = GetScreenHeight();
// TODO: Initialize all required variables and load all required data here! // TODO: Initialize all required variables and load all required data here!
SetTargetFPS(60); // Set desired framerate (frames-per-second) SetTargetFPS(60); // Set desired framerate (frames-per-second)
@ -129,6 +131,7 @@ void ios_update()
default: break; default: break;
} }
DrawFPS(screenWidth / 2, 0);
EndDrawing(); EndDrawing();
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
} }

+ 30
- 29
src/platforms/rcore_ios.c Ver ficheiro

@ -440,7 +440,8 @@ void PollInputEvents(void)
CORE.Input.Keyboard.keyRepeatInFrame[i] = 0; CORE.Input.Keyboard.keyRepeatInFrame[i] = 0;
} }
// TODO: Poll input events for current platform
// TODO: Poll input events for iOS
} }
@ -451,6 +452,24 @@ void PollInputEvents(void)
// Initialize platform: graphics, inputs and more // Initialize platform: graphics, inputs and more
int InitPlatform(void) int InitPlatform(void)
{ {
if(CORE.Window.screen.width == 0){
CORE.Window.screen.width = platform.viewController.view.frame.size.width;
}
if(CORE.Window.screen.height == 0){
CORE.Window.screen.height = platform.viewController.view.frame.size.height;
}
int orientation = [[UIApplication sharedApplication] statusBarOrientation];
if(orientation == UIInterfaceOrientationPortrait){
TRACELOG(LOG_INFO, "IOS: Window orientation set as Portrait");
}else if(orientation == UIInterfaceOrientationPortraitUpsideDown){
TRACELOG(LOG_INFO, "IOS: Window orientation set as PortraitUpsideDown");
}else if(orientation == UIInterfaceOrientationLandscapeLeft){
TRACELOG(LOG_INFO, "IOS: Window orientation set as LandscapeLeft");
}else if(orientation == UIInterfaceOrientationLandscapeRight){
TRACELOG(LOG_INFO, "IOS: Window orientation set as LandscapeRight");
}
// TODO: Initialize graphic device: display/window // TODO: Initialize graphic device: display/window
// It usually requires setting up the platform display system configuration // It usually requires setting up the platform display system configuration
// and connexion with the GPU through some system graphic API // and connexion with the GPU through some system graphic API
@ -541,15 +560,15 @@ int InitPlatform(void)
platform.surface = eglCreateWindowSurface(platform.device, platform.config, native_window, NULL); platform.surface = eglCreateWindowSurface(platform.device, platform.config, native_window, NULL);
// There must be at least one frame displayed before the buffers are swapped // There must be at least one frame displayed before the buffers are swapped
eglSwapInterval(platform.device, 1);
o">//eglSwapInterval(platform.device, 1);
EGLBoolean result = eglMakeCurrent(platform.device, platform.surface, platform.surface, platform.context);
// Check surface and context activation
if (result != EGL_FALSE)
if (eglMakeCurrent(platform.device, platform.surface, platform.surface, platform.context) == EGL_FALSE)
{
TRACELOG(LOG_WARNING, "DISPLAY: Failed to attach EGL rendering context to EGL surface");
return -1;
}
else
{ {
CORE.Window.ready = true;
CORE.Window.render.width = CORE.Window.screen.width; CORE.Window.render.width = CORE.Window.screen.width;
CORE.Window.render.height = CORE.Window.screen.height; CORE.Window.render.height = CORE.Window.screen.height;
CORE.Window.currentFbo.width = CORE.Window.render.width; CORE.Window.currentFbo.width = CORE.Window.render.width;
@ -561,30 +580,12 @@ int InitPlatform(void)
TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height);
TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y);
} }
else
{
TRACELOG(LOG_FATAL, "PLATFORM: Failed to initialize graphics device");
return -1;
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// If everything work as expected, we can continue
CORE.Window.render.width = CORE.Window.screen.width;
CORE.Window.render.height = CORE.Window.screen.height;
CORE.Window.currentFbo.width = CORE.Window.render.width;
CORE.Window.currentFbo.height = CORE.Window.render.height;
TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully");
TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height);
TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height);
TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height);
TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y);
// TODO: Load OpenGL extensions
// Load OpenGL extensions
// NOTE: GL procedures address loader is required to load extensions // NOTE: GL procedures address loader is required to load extensions
//----------------------------------------------------------------------------
rlLoadExtensions(eglGetProcAddress); rlLoadExtensions(eglGetProcAddress);
//----------------------------------------------------------------------------
CORE.Window.ready = true;
// TODO: Initialize input events system // TODO: Initialize input events system
// It could imply keyboard, mouse, gamepad, touch... // It could imply keyboard, mouse, gamepad, touch...

+ 2
- 0
src/rcore.c Ver ficheiro

@ -572,6 +572,8 @@ void InitWindow(int width, int height, const char *title)
TRACELOG(LOG_INFO, "Platform backend: NATIVE DRM"); TRACELOG(LOG_INFO, "Platform backend: NATIVE DRM");
#elif defined(PLATFORM_ANDROID) #elif defined(PLATFORM_ANDROID)
TRACELOG(LOG_INFO, "Platform backend: ANDROID"); TRACELOG(LOG_INFO, "Platform backend: ANDROID");
#elif defined(PLATFORM_IOS)
TRACELOG(LOG_INFO, "Platform backend: IOS");
#else #else
// TODO: Include your custom platform backend! // TODO: Include your custom platform backend!
// i.e software rendering backend or console backend! // i.e software rendering backend or console backend!

Carregando…
Cancelar
Guardar