126 views
in GUI Development by

Hello,

i have an  intro-screen which has different stages:
first stage: A warpimage getting smaller and smaller

second stage: The warpimage disappeares and an other warpimage is set visable, also getting scaled

third stage: second warpimage fly away

After the intro-screen the main screen comes up in the device and when shutting the device down the same intro-screen comes as outro.

That works fine. Now i needed 2 different versions of the intro, showing 2 different bitmaps in the first stage. This is handled with a global varibale like discribed here: how to add global variable in GUI - Ask Embedded Wizard (embedded-wizard.de)

I use the init() to differentiate, when global variable is set, use bitmap1 else use bitmap2.

Info: I generated the set-function of the gobal variable but nothing changes when try to set it from the device so i generated a property with set-function which set the gobal variable -> that worked.

The first intro always workes as i want, showing the different bitmaps depending on setting or not setting the gobal variable from the device.

 

My problem: After the main screen is shown and wanted to shut the device down, the first stage of the intro (used as outro) sometimes is not shown, but the other stages are shown everytime.

Everytime i enable a screen i remove others first with:  rootObject.Remove(MainScreen) and then again creating new instance with: IntroScreen = new Application::IntroScreen; rootObject.Add( IntroScreen, 0 );

So when coming in main screen, intro screen get removed and again going from main screen in intro screen (as outro) should be as first time called intro screen.

But i have two different behavour, first time it works always correct and after main screen sometime it works sometimes not, but just the first stage, the other 2 stages always works. And i can see with debugging that init() is also called again. Curious is that nothing is shown in the first stage when not working, not bitmap1 and also not bitmap2, nothing, but stage 2 and 3 is shown correct. And in the Init() is just a if else so one of them should be shown, also tried with setting visible but nothing changes.

 

Thank you for helping. 

1 Answer

0 votes
by

Hello Pablo,

based on the provided information it is difficult to deduce what is wrong. I would recommend:

1. check console outputs for eventuell runtime error messages.

2. add trace statements to track the execution of the application.

Best regards

Paul Banach

by
Hello Paul,

bitmap resource dithering was on auto and mode was on default

changing mode to directAccess solved the problem..

 

When trying with normal image, there is no problem with mode on default.

It has to be a warpimage and mode on default to get this error.

 

Best regards

Pablo
by

Hello Pablo,

changing mode to directAccess solved the problem..

I suppose there is an error message in the console outputs. Possibly your target system has not enough RAM. Using direct access mode saves RAM but occupies much more ROM.

It has to be a warpimage and mode on default to get this error.

Normal image view limits to simple blit (bitmap copy) operation. Warp image view depends on the texture mapping operation. Mostly, blit operations are accelerated by HW. Texture mapping requires more sophisticated hardware. If such is not available in your target system, the operation is performed per software routines. In any case, I would not expect any differences - except performance aspects. Any error messages at the runtime?

Which HW are you using?

Are there any adaptations in the HW or SW?

Best regards

Paul Banach

Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint

...