Making cegui more mobile - oriented.
Moderators: CEGUI MVP, CEGUI Team
Making cegui more mobile - oriented.
Hi, im keep going with integration of cegui, and i have few requests to make cegui more mobile-oriented. Maybe some of these requests already done, i just dont know, cegui is so huge, its twice or even more larger them whole my project.
First, id like to see a magic option that changes orientation of cegui render "on fly". I think it's all about projection matrix recalculation for screen viewport and element scaling recalibration.
Second, there is no mouse arrow nor mouse buttons (its about devices with touchscreen). There is only one kind of button click - touch, but more then one touch can occur at a time (multitouch). I think it might cause just minor code change.
Third is about list scroll and other type of scrolls. Have you ever used iPhone\iPod device? It has nice UI feature - scroll inertion. When scrolling and you take your finger up, scroll keeps going just like it has mass and inertion.
Well, i think those are simple enough for beginning =)
First, id like to see a magic option that changes orientation of cegui render "on fly". I think it's all about projection matrix recalculation for screen viewport and element scaling recalibration.
Second, there is no mouse arrow nor mouse buttons (its about devices with touchscreen). There is only one kind of button click - touch, but more then one touch can occur at a time (multitouch). I think it might cause just minor code change.
Third is about list scroll and other type of scrolls. Have you ever used iPhone\iPod device? It has nice UI feature - scroll inertion. When scrolling and you take your finger up, scroll keeps going just like it has mass and inertion.
Well, i think those are simple enough for beginning =)
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
ShiftZ wrote:...cegui is so huge, its twice or even more larger them whole my project.
Hehe. One thing I'd like to work towards (in the longer term, I guess) is the ability to configure the code so it's much more lightweight, whether it's actually possible or not I'm not certain. If somebody had told me six years ago that the library would become what it has I probably would have been too scared to write it!
ShiftZ wrote:First, id like to see a magic option that changes orientation of cegui render "on fly". I think it's all about projection matrix recalculation for screen viewport and element scaling recalibration.
Is the rotation of the VP not automagic on the iPod/iPhone? I thought it was, though aside from building the basic demo app I've not had a chance to look at it properly yet. As for setting the viewport size we have the System::notifyDisplaySizeChange function (that calls back the renderer module), this correctly handles VP resizing, though not rotation if that's required at the app level. I think it should be reasonably possible to add some support for affecting the final projection used for certain things (of course this is already possible on a per-renderer basis - just add whatever functions you need!)
ShiftZ wrote:Second, there is no mouse arrow nor mouse buttons (its about devices with touchscreen). There is only one kind of button click - touch, but more then one touch can occur at a time (multitouch). I think it might cause just minor code change.
Again, here I need to look at more closely at the device SDKs to see the kind of events we have to play with and how best to translate these into something CEGUI can use. There's already discussion about replacing the current injection system with something else, so that would be a good time to consider how to support these devices.
ShiftZ wrote:Third is about list scroll and other type of scrolls. Have you ever used iPhone\iPod device? It has nice UI feature - scroll inertion. When scrolling and you take your finger up, scroll keeps going just like it has mass and inertion.
Yeah it's a cool feature. It should actually be possible to do this now on the app side, whether we actually put such a thing into the core of CEGUI is dependant upon many things. Once again I have to look and see how it all functions and how best to translate it to the CEGUI world.
All of these ideas / requests are good. Though on the whole I want to avoid having a bunch of effects and such like integrated into the library that - design wise - should be put into either the app itself, or perhaps a middle layer; CEGUI is already huge, and avoiding things that should be in another layer is a wise decision IMO. Of course, I'm quite happy to create that 'middle layer' and offer it up here as an optional extra
CE
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
Is the rotation of the VP not automagic on the iPod/iPhone?
No actually its not. Its only possible with native gui system. Even with native gui you must read accelerometr and call magic function manually, as far as i know.
Again, here I need to look at more closely at the device SDKs to see the kind of events we have to play with and how best to translate these into something CEGUI can use.
Here is Applle about touch events:
http://developer.apple.com/iphone/libra ... dling.html
Filter out info you actually needed. There is nothing difficult.
Below is exapmle of touch event handling on iphone.
Everything you should know is that
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
equivalent to
void touchesEnded( NSSet* touches, UIEvent* event ) { }
[touch tapCount]; almost equivalent to touch->tapCount();
and [touch locationInView:self]; almost equivalent to touch->locationInView(this);
self = this, View = ui window or surface where touch occur.
NSSet - array
Code: Select all
typedef struct Touches
{
float LocationXTouchesBegan; // x and y coordinates where the touch began
float LocationYTouchesBegan;
float CountTouchesBegan; // how many fingers are pressed
float TapCountTouchesBegan; // tap with one, two or three fingers or more at once
float LocationXTouchesMoved; // x and y coordinates where the touch moved
float LocationYTouchesMoved;
float CountTouchesMoved;
float TapCountTouchesMoved;
float LocationXTouchesEnded; // x and y coordinates where the touch moved
float LocationYTouchesEnded;
bool TouchesEnd; // nothing touches the screen anymore
};
Touches TouchScreen;
// User UI View event handling
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
TouchScreen.LocationXTouchesBegan = location.x;
TouchScreen.LocationYTouchesBegan = location.y;
TouchScreen.CountTouchesBegan = (int) [touches count];
TouchScreen.TapCountTouchesBegan = [touch tapCount];
TouchScreen.LocationXTouchesMoved = location.x;
TouchScreen.LocationYTouchesMoved = location.y;
TouchScreen.CountTouchesMoved = (int) [touches count];
TouchScreen.TapCountTouchesMoved = [touch tapCount];
TouchScreen.LocationXTouchesEnded = 0.0;
TouchScreen.LocationYTouchesEnded = 0.0;
TouchScreen.TouchesEnd = false;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
TouchScreen.TouchesEnd = true;
TouchScreen.LocationXTouchesBegan = 0.0;
TouchScreen.LocationYTouchesBegan = 0.0;
TouchScreen.CountTouchesBegan = (int) 0;
TouchScreen.TapCountTouchesBegan = 0;
TouchScreen.LocationXTouchesMoved = 0.0;
TouchScreen.LocationYTouchesMoved = 0.0;
TouchScreen.CountTouchesMoved = (int) 0;
TouchScreen.TapCountTouchesMoved = 0;
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
TouchScreen.LocationXTouchesEnded = location.x;
TouchScreen.LocationYTouchesEnded = location.y;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
TouchScreen.LocationXTouchesMoved = location.x;
TouchScreen.LocationYTouchesMoved = location.y;
TouchScreen.CountTouchesMoved = (int) [touches count];
TouchScreen.TapCountTouchesMoved = [touch tapCount];
TouchScreen.TouchesEnd = false;
}
Those functions called direclty by iPhone SDK, It brings array of "touches" and "event" in three separete functions so you can handle.
Hope it will help to make things clear.
I forgot that there are also things like tap and double tap. Its like click and double click.
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
Thanks for the info - very interesting. Looks like I'll have lots to amuse myself with once 0.7.0 is out
CE.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
sorry to interfer but so who wants to pay to see cegui on mobiles platform (android and iPhone) ?
how can we start officialy those projects and stop talking ?
how can we start officialy those projects and stop talking ?
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
Tiresias wrote:how can we start officialy those projects and stop talking ?
In order to get this off the ground in an 'official' way, there needs to be a 'critical mass' of interest; such interest can be registered by users participating in these discussions. Once that interest is there, in order for it to become my main 'focus area', any one willing can pass me some "gold pieces" and things will start to progress in a manner directly proportional to the "gold pieces" contributed
Currently, it just seems like a couple of guys
CE
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
i will make donation (to be defined with the entire group) for this project to be started.
(prefer android port than iphone for now)
(prefer android port than iphone for now)
Re: Making cegui more mobile - oriented.
am i the only one?
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
Trying to get an abundance of people to participate in discussions on here is like mission impossible - I've been trying for six years and counting! This post will self destruct in 5 seconds...
CE.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
I do believe CEGUI should follow a more lightweight and embedded direction, not only in the part of mobiles, but also video game consoles and handhelds.
Re: Making cegui more mobile - oriented.
I'm also interested in using CEGUI for multitouch surfaces.
Code: Select all
critical_mass++;
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
Cool thanks for the votes.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
Sorry for long absent, my whole project became in danger. Now it has breath again, and im back to my work with cegui.
Interest in what? Making cegui running on android? Or these three feature requested above? its quite big difference here. I think these three features may be counted as 'minor feature reaquest', in opposite with porting on Java and running under Android.
In order to get this off the ground in an 'official' way, there needs to be a 'critical mass' of interest;
Interest in what? Making cegui running on android? Or these three feature requested above? its quite big difference here. I think these three features may be counted as 'minor feature reaquest', in opposite with porting on Java and running under Android.
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: Making cegui more mobile - oriented.
Hi,
Sorry, it was a partial thread-hijack that caused this confusion The critical-mass thing was pretty much referring to the port yes (though do note that this port is not about a conversion of the whole lib to java - that will never happen in an official capacity).
BTW, I do not necessarily agree that all three requested features are trivial. Trivial to just hack in, yes. Trivial to implement in a way that's consistent with the project as a whole, not so much. I've basically already agreed that these items will go in, but I can give no indication as to when I'll get around to doing it (in this respect the android port does become significant, because it's likely to get done at the same time). For info, the last three weeks I have spent on CEGUI I was supposed to be off dealing with other commitments I have - so it's not a case that these requests have been overlooked, but more a case that 0.7.0 was so full of bugs that I decided to prioritise the issues coming in off of the back of the 0.7.0 release. Once 0.7.1 comes out (some time in the next couple of weeks), I'll not be around here anymore until December - it's at this point that perhaps I'll start looking at these other items.
Hope this clears up any confusion.
CE.
Sorry, it was a partial thread-hijack that caused this confusion The critical-mass thing was pretty much referring to the port yes (though do note that this port is not about a conversion of the whole lib to java - that will never happen in an official capacity).
BTW, I do not necessarily agree that all three requested features are trivial. Trivial to just hack in, yes. Trivial to implement in a way that's consistent with the project as a whole, not so much. I've basically already agreed that these items will go in, but I can give no indication as to when I'll get around to doing it (in this respect the android port does become significant, because it's likely to get done at the same time). For info, the last three weeks I have spent on CEGUI I was supposed to be off dealing with other commitments I have - so it's not a case that these requests have been overlooked, but more a case that 0.7.0 was so full of bugs that I decided to prioritise the issues coming in off of the back of the 0.7.0 release. Once 0.7.1 comes out (some time in the next couple of weeks), I'll not be around here anymore until December - it's at this point that perhaps I'll start looking at these other items.
Hope this clears up any confusion.
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: Making cegui more mobile - oriented.
Googled and landed here, went through the bother of signing up to vote for this.
Code: Select all
critical_mass++;
Return to “Offtopic Discussion”
Who is online
Users browsing this forum: No registered users and 7 guests