Hash :
9b75fa01
        
        Author :
  
        
        Date :
2022-05-11T18:31:34
        
      
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
/*
    SDL_ngage_main.c, originally for SDL 1.2 by Hannu Viitala
*/
#include "../../SDL_internal.h"
/* Include the SDL main definition header */
#include "SDL_main.h"
#include <e32std.h>
#include <e32def.h>
#include <e32svr.h>
#include <e32base.h>
#include <estlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <w32std.h>
#include <apgtask.h>
#include "SDL_error.h"
extern "C" int main(int argc, char *argv[]);
TInt E32Main()
{
    /*  Get the clean-up stack */
    CTrapCleanup* cleanup = CTrapCleanup::New();
    /* Arrange for multi-threaded operation */
    SpawnPosixServerThread();
    /* Get args and environment */
    int    argc = 0;
    char** argv = 0;
    char** envp = 0;
    __crt0(argc,argv,envp);
    /* Start the application! */
    /* Create stdlib */
    _REENT;
    /* Set process and thread priority and name */
    RThread  currentThread;
    RProcess thisProcess;
    TParse   exeName;
    exeName.Set(thisProcess.FileName(), NULL, NULL);
    currentThread.Rename(exeName.Name());
    currentThread.SetProcessPriority(EPriorityLow);
    currentThread.SetPriority(EPriorityMuchLess);
    /* Increase heap size */
    RHeap* newHeap  = NULL;
    RHeap* oldHeap  = NULL;
    TInt   heapSize = 7500000;
    int    ret;
    newHeap = User::ChunkHeap(NULL, heapSize, heapSize, KMinHeapGrowBy);
    if (NULL == newHeap)
    {
        ret = 3;
        goto cleanup;
    }
    else
    {
        oldHeap = User::SwitchHeap(newHeap);
        /* Call stdlib main */
        SDL_SetMainReady();
        ret = SDL_main(argc, argv);
    }
cleanup:
    _cleanup();
    CloseSTDLIB();
    delete cleanup;
    return ret;
}
/* vi: set ts=4 sw=4 expandtab: */