bool MarmaladeSystem::CreateGameWindow(BaseGameApp *gameApp, GameWindowParams *params) { ASSERT(m_window == NULL); MarmaladeGameWindow *window = new MarmaladeGameWindow(gameApp, this); ASSERT(window != NULL); if (!window->Create(params)) { LOG_ERROR(LOGCAT_SYSTEM, "Failed to create a GameWindow.\n"); return false; } m_window = window; int glVersion = s3eGLGetInt(S3E_GL_VERSION); int glVersionMajor = (glVersion >> 8) & 0xff; int glVersionMinor = glVersion & 0xff; int eglVersion = s3eGLGetInt(S3E_EGL_VERSION); int eglVersionMajor = (eglVersion >> 8) & 0xff; int eglVersionMinor = eglVersion & 0xff; int glMustSuspend = s3eGLGetInt(S3E_GL_MUST_SUSPEND); LOG_INFO(LOGCAT_SYSTEM, "GL Version: %d.%d\n", glVersionMajor, glVersionMinor); LOG_INFO(LOGCAT_SYSTEM, "EGL Version: %d.%d\n", eglVersionMajor, eglVersionMinor); if (glMustSuspend) LOG_INFO(LOGCAT_SYSTEM, "Platform may require GL context to be suspended/resumed during execution.\n"); else LOG_INFO(LOGCAT_SYSTEM, "Platform will not require GL context to be suspended/resumed during execution.\n"); LOG_INFO(LOGCAT_SYSTEM, "OpenGL renderer using the following video hardware:\n"); LOG_INFO(LOGCAT_SYSTEM, "GL_VENDOR: %s\n", glGetString(GL_VENDOR)); LOG_INFO(LOGCAT_SYSTEM, "GL_RENDERER: %s\n", glGetString(GL_RENDERER)); LOG_INFO(LOGCAT_SYSTEM, "GL_VERSION: %s\n", glGetString(GL_VERSION)); LOG_INFO(LOGCAT_SYSTEM, "GL_EXTENSIONS: %s\n", glGetString(GL_EXTENSIONS)); #ifdef GL_ES_VERSION_2_0 if (glVersionMajor >= 2) { m_hasShaderSupport = true; // TOD: shader version detection? (who cares?) m_supportedShaderVersion = 0.0f; LOG_INFO(LOGCAT_SYSTEM, "Version of OpenGL supports using shaders.\n"); LOG_INFO(LOGCAT_SYSTEM, "GL_SHADING_LANGUAGE_VERSION: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION)); } else { m_hasShaderSupport = false; m_supportedShaderVersion = 0.0f; LOG_INFO(LOGCAT_SYSTEM, "Version of OpenGL supports fixed function pipeline only.\n"); } #endif LOG_INFO(LOGCAT_SYSTEM, "GameWindow instance is ready.\n"); return true; }
//! constructor CIrrDeviceMarmalade::CIrrDeviceMarmalade(const SIrrlichtCreationParameters& param) : CIrrDeviceStub(param), Paused(false) { initKeyMap(); CursorControl = new CMarmaladeCursor(this); //video::SExposedVideoData data; SIrrlichtCreationParameters params = param; params.WindowSize.Width = s3eSurfaceGetInt(S3E_SURFACE_WIDTH); params.WindowSize.Height = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT); int32 glver = s3eGLGetInt(S3E_GL_VERSION); if(glver >= 0x200) VideoDriver = video::createOGLES2Driver(params, FileSystem); else VideoDriver = video::createOGLES1Driver(params, FileSystem); glViewport(0, 0, params.WindowSize.Width, params.WindowSize.Height); if (VideoDriver) createGUIAndScene(); s3eDeviceRegister(S3E_DEVICE_EXIT, &do_Exit, this); s3eDeviceRegister(S3E_DEVICE_PAUSE, &do_Pause, this); s3eDeviceRegister(S3E_DEVICE_UNPAUSE, &do_Unpause, this); s3eKeyboardRegister(S3E_KEYBOARD_KEY_EVENT, &do_KeyEvent, this); s3eKeyboardRegister(S3E_KEYBOARD_CHAR_EVENT, &do_CharEvent, this); }
void init2() { #ifdef OXYGINE_SDL initGLExtensions(SDL_GL_GetProcAddress); #endif Point size = getDisplaySize(); log::messageln("display size: %d %d", size.x, size.y); #if __S3E__ int glversion = s3eGLGetInt(S3E_GL_VERSION); int major_gl = glversion >> 8; if (major_gl == 2) IVideoDriver::instance = new VideoDriverGLES20(); else { OX_ASSERT(!"gl version should be 2"); //IVideoDriver::instance = new VideoDriverGLES11(); } #elif __FLASHPLAYER__ { VideoDriverStage3D *vd = new VideoDriverStage3D(); vd->init(); IVideoDriver::instance = vd; } //IVideoDriver::instance = new VideoDriverNull(); #else IVideoDriver::instance = new VideoDriverGLES20(); #endif checkGLError(); IVideoDriver::instance->setDefaultSettings(); checkGLError(); Renderer::initialize(); Resources::registerResourceType(ResAtlas::create, "atlas"); Resources::registerResourceType(ResBuffer::create, "buffer"); Resources::registerResourceType(ResFontBM::create, "font"); Resources::registerResourceType(ResFontBM::createBM, "bmfc_font"); Resources::registerResourceType(ResFontBM::createSD, "sdfont"); Resources::registerResourceType(ResStarlingAtlas::create, "starling"); checkGLError(); log::messageln("oxygine initialized"); }
void init2() { #ifdef OXYGINE_QT setlocale(LC_ALL, "POSIX"); #endif #ifdef OXYGINE_SDL int missing = initGLExtensions(SDL_GL_GetProcAddress); #endif Point size = getDisplaySize(); log::messageln("display size: %d %d", size.x, size.y); #if __S3E__ int glversion = s3eGLGetInt(S3E_GL_VERSION); int major_gl = glversion >> 8; OX_ASSERT( major_gl == 2 && "gl version should be 2"); IVideoDriver::instance = new VideoDriverGLES20(); #endif IVideoDriver::instance = new VideoDriverGLES20(); CHECKGL(); IVideoDriver::instance->setDefaultSettings(); CHECKGL(); Renderer::initialize(); Resources::registerResourceType(ResAtlas::create, "atlas"); Resources::registerResourceType(ResBuffer::create, "buffer"); Resources::registerResourceType(ResFontBM::create, "font"); Resources::registerResourceType(ResFontBM::createBM, "bmfc_font"); Resources::registerResourceType(ResFontBM::createSD, "sdfont"); Resources::registerResourceType(ResStarlingAtlas::create, "starling"); CHECKGL(); log::messageln("oxygine initialized"); }