Author Topic: iOS (iPad) Screen BUGs (round corners, windowed, buffer video????)  (Read 24906 times)

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10851
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Can you zip this xcode project, please?

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Can you zip this xcode project, please?


Sure!!!

Here, I attach the project that I have for testing purposes.

It is renamed different than the original. It has also an info.plist to be capable of importing files under iOS.

There are included some XCode wrappers that I published before in this forums.


Tell me if you have any problem to run or use it...

Regards

[attachment deleted by admin]
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Hi (again)...

I just discovered the difference...

I don't know exactly why, but I have an old libGLBasiciPhone-egl.a...

This .a file should come from the times before the iCade support...   :P

For me, when I build a new iPhone project, GLBasic is generating a copy of libGLBasiciPhone-egl.a and libpng-gf.a files inside my "XCode" folder, and inside "XCode/Lib" also...    But appears that it does not overwrite my old .a libs...

If I overwrite the GLBasic .a lib/framework with the last version, the rounded corners appears :(  and I have a lot of problems when I try to change the iOS orientation using my wrappers (contained in the ZIP file, you can test it)...     I suppose it is because the iCade View is rotated when I change the iOS orientation.


Test it using my ZIP if you can, to see what I'm trying to explain.


« Last Edit: 2012-Apr-26 by DaCarSoft »
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10851
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
OK it's the iCade then. I'll try to fix it.

Offline Hark0

  • Prof. Inline
  • *****
  • Posts: 1020
  • Geek Developer
    • View Profile
    • LitioPixel - Desarrollo de videojuegos con GLBasic | Videogame development with GLBasic
OK it's the iCade then. I'll try to fix it.

Maybe you can add a check option in Project/Options screen for iOS.

 ;)

http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

Offline spacefractal

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 4025
    • View Profile
    • Space Fractal
All you can do is possible for us to disable iCade/Inkey support when its not needed by the games. Corners present for iCade games is a iOS issue.

Another issue also with iCade is its wont respons at all after a GLB_ON_RESUME call, when a app is resumed, but elsewise until that happens its works nice. Here I would do a init call again.

as I previos requested possible to call java functions by a special command, I think its could been done extactly the same trick with disable/enable like this....

Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation and The beagle Jam.

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
And...   what about include the iCade support as a wrapper???

May be that these kind of functions (iCade, alerts, keyboards...) must be independent "open source" options...   to let programmers maintain easily these kind of hardware/OS dependent parts in GLBasic...   almost, when is not sure that these parts are "rock solid" and will work in the same way forever...

I remember that: An upgrade in iOS 4 did mandatory the use of certain visible iOS elements from the "main thread" (alerts for example)...
That OS updates and changes ever brings problems...    That could make unusable an App made with GLBasic under some circumstances.

"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline mrplant

  • Mr. Polyvector
  • ***
  • Posts: 233
    • View Profile
I have long suspected this Hello Kitty!

I remember working on Rock Crush last sept. (around about 19th-21st) when I first started the project research and I mentioned to you initially about iCade support and you added it in - it was around that time - I can certainly narrow it down to that week as I was on holiday at a cottage that week and worked on it - you were releasing almost daily builds of GLBasic at that time- and the day you added iCade support it started showing those weird random corners...
I was pretty convinced even back then thats what it was..

How to sort it would be another matter but I wouldn't have a clue of course ;-)

Even to this day, it appears randomly as corner distortion effect mentioned. This is on iPad and iPhone.

It is annoying but does no harm. I hope there is a way to fix it whilst still keeping in iCade support as it currently works as the implementation from within GLBasic is brilliant I think.
Perhaps as a current workaround - some sort of option to enable.disable iCade support from GLBasic?

The other thing to add is my game Rock Crush is multi platform and I have never ever seen this weird corruption problem appear on my windows or mac computers - just on iOS - so it has to be the iCade code.

Hope that helps you a bit...


I think it's the "hidden" input window for the INKEY$ and iCADE support.

 :blink: ?

(I think my english are a bit confuse)
« Last Edit: 2012-Apr-27 by mrplant »

Offline spacefractal

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 4025
    • View Profile
    • Space Fractal
in Greedy Mouse you barly notice them anyway and you can allways add them to all 4 corners, then noneone would notice it at all.

Anyway agree we should have some sort of option to disable/enable support of variours ting.

Somesort of value$=GETOPTION$(name$) as well SETOPTION(name$, value$). This command could also invoke the special java function for Android as well other platforms.
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation and The beagle Jam.

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
To enable/disable an option in GLBasic could solve the problem for programmers that don't need the iCade support...   But...  the corners will continue appearing when iCade support will be "on"...

I'm sure that it should exist a way to make "invisible" that window under XCode, but if that windows continues there, in any way, it could bring problems for me when I invoke to certain iOS specific functions to rotate my iOS alerts or keyboard, because of the position of the iCade window when iOS rotates the screen or because of a shadow that iOS generates for the iCade view... (or any other new problem that could appear testing in the future...)

I was compiling with an old version of the .a GLBasic framework before, now if I let GLBasic use the last .a versions, my code does not work properly  :(   but I can't turn off iCade until an update will be published...  :'(

Anyone could test it downloading my zip from the previous posts and testing it, overwriting (or not) the .a libs in the XCode folders to see what happens.

For me, may be that an ON/OFF function could solve the problem, I could make a new wrapper to support iCade and avoid these problems, but...   It is not easier to use it as a wrapper directly?????

I'm sure that the iCade support was included with the best intentions, but these kind of things could be in conflict with any XCode function that anyone could try to use.




"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Only to explain me better, and offer more information to solve the problem in the best way:

This is what happens for me since I updated GLBasic to a version that includes the iCade support.

I can't create certain iOS elements freely, without errors or problems...

The first picture is my keyboard wrapper when I show it in landscape, because the iCade view doesn't rotate when I rotate my own iOS created views/controls.

The other picture shows what happens after the keyboard is hidden: The iCade view does not rotate and continues showing the corners and a shadow. Like in this message of "MrPlant" some posts ago:
http://www.glbasic.com/forum/index.php?topic=7867.msg65671#msg65671

Hope this helps.






[attachment deleted by admin]
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline spacefractal

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 4025
    • View Profile
    • Space Fractal
I gonna think its the same issue with the Android surface rotation issue? Here just with iCade. Howover not a big issue in Greedy Mouse, but I do can see its a annoying bug when UI is used.

So best fix is still possible to disable and enable those speciel version in runtime and you would not notice it. Not all game need iCade anyway, howover I support it in my game (since its a joypad type game).
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation and The beagle Jam.

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10851
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
This is starting to get too complicated for me now.
What can I do? Hide the iCade view? Do you want a pointer to it? Would that help?

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Hi...

As i said in my previous posts, I know that the iCade support was did with the best intentions, but I think that to create an iOS view (under XCode) that the users of GLBasic/programmers can not control is very very dangerous...

Not only me, other people are experiencing problems because of the iCade view. Because of this, may be that the best solution will be to remove the iCade view and support/implementation, and offer this support as a wrapper.

I was searching hard, trying to found a solution, and I was looking at the code here:
https://github.com/scarnie/iCade-iOS/tree/master/iCadeTest/iCade

I suppose, reading old posts here in the forums, that you used this code to implement the iCade as a joystick.

Looking at the code, I suppose that may be a way to implement it as a bluetooth keyboard, without any view, but...   I don't have a iCade for testing...

With a pointer, I could try to write some code under XCode to remove/control the iCade view, but this is something that all GLBasic programmers will have to do if we want our App free of rounded corners or black lines...

Sincerely (Im so so so so sorry...) but i think that the best way to solve this is remove the iCade from GLBasic and implement  iCade is a wrapper for programmers who need it...

:(    I say this with the best hopes...

Best regards.


"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10851
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
My code is:
Code: (glbasic) [Select]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
CGRect rect = [[UIScreen mainScreen] applicationFrame];

//Create a full-screen window
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[window setBackgroundColor:[UIColor blackColor]];

gpGLB_MainWnd = (void*)window;

// ## iCade View ##
    iCadeView = [[iCadeReaderView alloc] initWithFrame:CGRectMake(0,0,1,1)];
[window addSubview:iCadeView];
    iCadeView.active = YES;
    iCadeView.delegate = self;
gpiCadeView = iCadeView; // store global 'extern "C"' pointer

// ## OpenGL View ##
//Create the OpenGL drawing view and add it to the window
glView = [[EAGLView alloc] initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];
[glView setMultipleTouchEnabled: YES];
[window addSubview:glView];

Does this help?