N-Gage port: add changes from code reviews, overall cleanup (#5618)

* Add changes from code review by @ccawley2011, #5597, overall cleanup

* Update N-Gage README, minor cleanup and rephrasing

* Call SDL_SetMainReady() before calling SDL_main, return SDL_main instead of main
This commit is contained in:
Michael Fitzmayer
2022-05-11 18:31:34 +02:00
committed by GitHub
parent 2c2cbbe664
commit 9b75fa0165
8 changed files with 51 additions and 41 deletions

View File

@@ -1,6 +1,5 @@
/*
EPOC version (originally for SDL 1.2) by Hannu Viitala
(hannu.j.viitala@mbnet.fi).
SDL_ngage_main.c, originally for SDL 1.2 by Hannu Viitala
*/
#include "../../SDL_internal.h"
@@ -68,7 +67,8 @@ TInt E32Main()
{
oldHeap = User::SwitchHeap(newHeap);
/* Call stdlib main */
ret = main(argc, argv);
SDL_SetMainReady();
ret = SDL_main(argc, argv);
}
cleanup:

View File

@@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"
/* An implementation of mutexes using semaphores */
/* An implementation of mutexes using the Symbian API. */
#include <e32std.h>
@@ -70,6 +70,22 @@ SDL_DestroyMutex(SDL_mutex * mutex)
}
}
/* Try to lock the mutex */
#if 0
int
SDL_TryLockMutex(SDL_mutex * mutex)
{
if (mutex == NULL)
{
SDL_SetError("Passed a NULL mutex.");
return -1;
}
// Not yet implemented.
return 0;
}
#endif
/* Lock the mutex */
int
SDL_LockMutex(SDL_mutex * mutex)
@@ -89,7 +105,7 @@ SDL_LockMutex(SDL_mutex * mutex)
/* Unlock the mutex */
int
SDL_mutexV(SDL_mutex * mutex)
SDL_UnlockMutex(SDL_mutex * mutex)
{
if ( mutex == NULL )
{

View File

@@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"
/* An implementation of semaphores using mutexes and condition variables */
/* An implementation of semaphores using the Symbian API. */
#include <e32std.h>

View File

@@ -128,19 +128,6 @@ SDL_SYS_DetachThread(SDL_Thread * thread)
return;
}
/* WARNING: This function is really a last resort.
* Threads should be signaled and then exit by themselves.
* TerminateThread() doesn't perform stack and DLL cleanup.
*/
void
SDL_SYS_KillThread(SDL_Thread *thread)
{
RThread rthread;
rthread.SetHandle(thread->handle);
rthread.Kill(0);
rthread.Close();
}
#endif /* SDL_THREAD_NGAGE */
/* vim: ts=4 sw=4

View File

@@ -113,7 +113,7 @@ static SDL_Scancode ConvertScancode(_THIS, int key)
keycode = SDLK_ASTERISK;
break;
case EStdKeyHash: // Hash
keycode = SDLK_SLASH;
keycode = SDLK_HASH;
break;
case EStdKeyDevice0: // Left softkey
keycode = SDLK_SOFTLEFT;
@@ -121,14 +121,14 @@ static SDL_Scancode ConvertScancode(_THIS, int key)
case EStdKeyDevice1: // Right softkey
keycode = SDLK_SOFTRIGHT;
break;
case EStdKeyApplication0: // Green softkey
case EStdKeyApplication0: // Call softkey
keycode = SDLK_CALL;
break;
case EStdKeyApplication1: // Red softkey
case EStdKeyApplication1: // End call softkey
keycode = SDLK_ENDCALL;
break;
case EStdKeyDevice3: // Middle softkey
keycode = SDLK_RETURN;
keycode = SDLK_SELECT;
break;
case EStdKeyUpArrow: // Up arrow
keycode = SDLK_UP;
@@ -166,7 +166,7 @@ int HandleWsEvent(_THIS, const TWsEvent& aWsEvent)
case EEventFocusGained: /* SDL window got focus */
phdata->NGAGE_IsWindowFocused = ETrue;
/* Draw window background and screen buffer */
DisableKeyBlocking(_this); //Markus: guess why :-)
DisableKeyBlocking(_this);
RedrawWindowL(_this);
break;
case EEventFocusLost: /* SDL window lost focus */

View File

@@ -106,11 +106,16 @@ int SDL_NGAGE_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * forma
{
phdata->NGAGE_FrameBuffer += 32;
}
/*if (phdata->NGAGE_HasFrameBuffer && GetBpp(displayMode) == 12)
phdata->NGAGE_FrameBuffer += 16 * 2;
if (phdata->NGAGE_HasFrameBuffer && GetBpp(displayMode) == 16)
phdata->NGAGE_FrameBuffer += 16 * 2;
*/
#if 0
if (phdata->NGAGE_HasFrameBuffer && GetBpp(displayMode) == 12)
{
phdata->NGAGE_FrameBuffer += 16 * 2;
}
if (phdata->NGAGE_HasFrameBuffer && GetBpp(displayMode) == 16)
{
phdata->NGAGE_FrameBuffer += 16 * 2;
}
#endif
// Get draw device for updating the screen
TScreenInfoV01 screenInfo2;
@@ -367,11 +372,13 @@ void DirectUpdate(_THIS, int numrects, SDL_Rect *rects)
TUint16* screenBuffer = (TUint16*)phdata->NGAGE_FrameBuffer;
/*if (phdata->NGAGE_ScreenOrientation == CFbsBitGc::EGraphicsOrientationRotated270)
#if 0
if (phdata->NGAGE_ScreenOrientation == CFbsBitGc::EGraphicsOrientationRotated270)
{
// ...
}
else */
else
#endif
{
DirectDraw(_this, numrects, rects, screenBuffer);
}
@@ -385,7 +392,7 @@ void DirectUpdate(_THIS, int numrects, SDL_Rect *rects)
TInt aBy = rects[i].h;
TRect rect2 = TRect(aAx, aAy, aBx, aBy);
phdata->NGAGE_DrawDevice->UpdateRegion(rect2); /* Should we update rects parameter area only?? */
phdata->NGAGE_DrawDevice->UpdateRegion(rect2); /* Should we update rects parameter area only? */
phdata->NGAGE_DrawDevice->Update();
}
}