SophiaFramework UNIVERSE 5.3 |
To enlarge the responder space to full screen, initialize the renderer (SFYRenderer) after setting the device screen to full screen mode.
The below is the code to enlarge the responder space to full screen.
In this code, after the device screen is set to full screen mode by calling the SFBDisplay::SetPrefs function, the renderer is re-initialized by calling the SFYRenderer::Initialize function. With this operation, the responder space is enlarged to full screen. And the default root (SFZRoot) internally contained by SFYApplication is also re-initialized.
All sample code is available at this site(fullscreen_sfy-en2.zip: 41.3 KB).
Example 9.47. Method to enlarge the responder space to full screen
SFMTYPEDEFCLASS(USRApplication) class USRApplication : public SFYApplication { SFMSEALCOPY(USRApplication) public: static SFCInvokerPtr Factory (Void); protected: explicit USRApplication (Void) static_throws; virtual ~USRApplication (Void); private: SFCError Initialize (Void); // ... }; // constructor of application class USRApplication::USRApplication(Void) static_throws { if (static_try()) { // re-initialize the renderer and the root in full screen mode static_throw(Initialize()); } if (static_try()) { // describe the other initialization // ... } } // re-initialize the renderer and the root in full screen mode SFCError USRApplication::Initialize(Void) { SFXGraphicsPtr graphics; SFBDisplaySmp display; SFYRendererPtr renderer; SFZRootSmp root; SFCError error(SFERR_NO_ERROR); // get the SFXGraphics instance if ((graphics = SFXGraphics::GetInstance()) != null) { // get the SFBDisplay instance display = graphics->GetSFBDisplay(); // change display settings(annunicators: yes, screen width / height: max) if ((error = display->SetPrefs("a:1,w:*,h:*")) == SFERR_NO_ERROR) { // reset the clipping rectangle to the default (destination bitmap bounds) display->ResetClipRect(); // get the renderer if ((renderer = GetRenderer()) != null) { // initialize the renderer // * responder space will be enlarged to full screen renderer->Initialize(); // get the root if ((root = static_pointer_cast<SFZRoot>(GetRoot())) != null) { // set the root's real region to full screen root->SetRealBound(root->GetSuitableBound()); } else { error = SFERR_INVALID_STATE; } } else { error = SFERR_INVALID_STATE; } } } else { error = SFERR_INVALID_STATE; } return error; }
Setting of the mif file | |
---|---|
To use the SFBDisplay::SetPrefs function, the AEEPRIVID_DISPSETTINGS previledge of the MIF file is needed. This previledge can be obtained by selecting the "dependent file" tab of the MIF editor and adding the external class "DISPSETTINGS (0x0103081D)" included in the include file of BREW SDK. Full screen mode is not supprted by BREW simulator(as of 2011/6/13). To confirm this behaviour, a mobile phone is required. Some mobile phone may not support the full screen mode. |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |