TestaSkin, a new tool on the road

Help and discussion regarding skinning, themes, and other artistic content.

Moderators: CEGUI MVP, CEGUI Team

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: TestaSkin, a new tool on the road

Postby CrazyEddie » Sat Nov 05, 2005 14:14

martignasse wrote:
is the alias system in sync with the falagard system ?

i mean, it's like the alias system was looking for primary type (Falagard, WindowLook, TaharezLook) and not at the mapped one (who are introduced with the falagard system, if i understand correctly).


You have found an inconsistency bug :D Thanks for the find! I will fix this today.

CE.

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Sat Nov 05, 2005 16:26

I will fix this today
cool, by fixing it, you mean in the CVS HEAD ? in this case, what about the 0.4 version ?

because i wanted to stay with 0.4 until the official 0.5 release

For more info, after some research in 0.4 source code, WindowFactoryManager.cpp :

Code: Select all

/*************************************************************************
   Returns true if a WindowFactory (or an alias) for a specified type
   is present
*************************************************************************/
bool WindowFactoryManager::isFactoryPresent(const String& name) const
{
   // first try for a 'real' type
   if (d_factoryRegistry.find(name) != d_factoryRegistry.end())
   {
      return true;
   }
   // no real type exists with that type, see if we have an appropriate alias instead.
   else
   {
      return (d_aliasRegistry.find(name) != d_aliasRegistry.end());
   }

}

this method isn't looking at falagard mapped type, and it's what causing trouble, appearently.
but maybe there is other miss i didn't noticed.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: TestaSkin, a new tool on the road

Postby CrazyEddie » Sat Nov 05, 2005 17:08

Hi,

This has now been fixed. It may take up to 24 hours for the anonymous cvs server to sync with the developer server.

Bug fixes generally go into the current stable branch, and then get merged back into head, and this is what I have done in this case. So for cases like these you just do a 'cvs update' on your 0.4 directory to get all fixes applied to that branch; this does not move you to head - you will stay on the stable branch.

The fix was slightly more involved than the one method (unfortunately ;) ). The fixes applied should also solve a couple of other similar, potential issues. In doing the fix, creation semantics have changed slightly; aliases now take precedence over concrete types with the same name, which allows 'hiding' of old names via the aliasing system - which was always the intended behaviour (there are posts in here to that effect, though nobody every reported that it didn't work :lol: ).

HTH

CE.

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Sat Nov 05, 2005 17:18

This has now been fixed. It may take up to 24 hours for the anonymous cvs server to sync with the developer server.
thanks thousand time :)

I'll look tomorrow.

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Tue Nov 08, 2005 18:59

ok, i make it work but...found another bug :shock:

Code: Select all

// in CEGUIWindowFactoryManager.cpp, line 299
String WindowFactoryManager::getDereferencedAliasType(const String& type) const
{
    TypeAliasRegistry::const_iterator alias = d_aliasRegistry.find(type);

    // if this is an aliased type, ensure to fully dereference by recursively
    // calling ourselves on the active target for the given type.
    if (alias != d_aliasRegistry.end())
 |-|-|->   return getDereferencedAliasType(type);    <-|-|-|

    // we're not an alias, so return the input type unchanged
    return type;
}
this line make a dead lock when invoked with an alias type. :cry:

I modified like this to make it good for me :?

Code: Select all

String WindowFactoryManager::getDereferencedAliasType(const String& type) const
{
     TypeAliasRegistry::const_iterator alias = d_aliasRegistry.find(type);

    // if this is an aliased type, ensure to fully dereference by recursively
    // calling ourselves on the active target for the given type.
    if (alias != d_aliasRegistry.end())
      {
|-|-|->         return getDereferencedAliasType((*alias).second.getActiveTarget());  <-|-|-|
      }

    // we're not an alias, so return the input type unchanged
    return type;
}
but not sure about the validity of my correction.

:idea: notice the thread about the ceguistring.h(5550) compile error :idea:

About TestaSkin, just to say skin choice is ok to all layout type now :D
Just finish implementing it and i'll make an update :)

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: TestaSkin, a new tool on the road

Postby CrazyEddie » Tue Nov 08, 2005 19:36

Hi,

Both of these issues were already fixed earlier this afternoon, and should be available in anonymous cvs any time soon ;)

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Wed Nov 09, 2005 16:52

ok, cool :)

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Fri Nov 11, 2005 15:37

ok, finally got it :-)

Always the same link for the update.

new in this release :
- A little toolbox to choice the background color.
- Layout Selector redesign, with a more confortable management of xml layout files ;-)
- You can now change the skin when you want, with both layout type :-)

Feedback are greatly appreciated.

Have fun.

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Fri Nov 11, 2005 15:39

and like always, a little screenshot :
Image

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Fri Nov 11, 2005 15:49

One important thing for those who want to test there own xml layout :

widgets type should be specified without skin. for example :
"Button" instead of "WindowsLook/Button".

It's to make it work with the Alias system.

for a complete list of widget type name, look in one of the WidgetAliasesXXXX.scheme file.

should begin to make a Doc, or a wiki page.

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Sat Nov 19, 2005 18:23

come on, no feedback ? :cry:

nobody tried it ?

please, i need some feedback :roll:

User avatar
lindquist
CEGUI Team (Retired)
Posts: 770
Joined: Mon Jan 24, 2005 21:20
Location: Copenhagen, Denmark

Re: TestaSkin, a new tool on the road

Postby lindquist » Sat Nov 19, 2005 21:04

I'm on Linux, and due to lack of makefiles and patience to create some I tried running it through WINE 9.1 (win32 emu).

To my surprise it actually worked :D
Looks great, I just had to copy 'msvcr71.dll' and 'msvcp71.dll' from my windows partition to get it going.

I really like your marti skin. very clean :)

I got an 'unknown exception occured' dialog when I tried to add a layout from a file. (add button Clicked).
Have'nt looked into it, but besides that it worked great.

Good job

User avatar
spannerman
Home away from home
Home away from home
Posts: 330
Joined: Wed Jan 12, 2005 12:06

Re: TestaSkin, a new tool on the road

Postby spannerman » Sun Nov 20, 2005 20:44

I just tested your app, martignasse, works well, good job. I can see this being really useful, escpecially for newcomers deciding what skin to use in their GUI, but also for skin creators to quickily test and compare their own creations.

I have one suggestion: When switching skins, the layout (size, positioning etc) gets reset...is this a necessity? I think that it would be even better if the layout looked the same no matter what skins you switch to, and regardless of how the user has modified the layout.

Keep it up :D

User avatar
martignasse
Just can't stay away
Just can't stay away
Posts: 227
Joined: Thu Apr 14, 2005 08:10
Location: Lyon, FRANCE

Re: TestaSkin, a new tool on the road

Postby martignasse » Sun Nov 20, 2005 22:08

thanks guys...

to lindquist :
I'm on Linux, and due to lack of makefiles and patience to create some I tried running it through WINE 9.1 (win32 emu).

To my surprise it actually worked :D
Looks great, I just had to copy 'msvcr71.dll' and 'msvcp71.dll' from my windows partition to get it going.
good to know it's working with a win emulator :)

I really like your marti skin. very clean :)
yes, it's like y wanted it to be... but far from finished...working on

I got an 'unknown exception occured' dialog when I tried to add a layout from a file. (add button Clicked).
it's the one thing i wanted feedback on.
i have the same, completly randomised bug, and can't find where it come from :(


from spannerman :
I can see this being really useful, escpecially for newcomers deciding what skin to use in their GUI, but also for skin creators to quickily test and compare their own creations
yes, it's the idea behind this little tool (appart the fact i'm hardly learning CEGUI) :D

When switching skins, the layout (size, positioning etc) gets reset...is this a necessity? I think that it would be even better if the layout looked the same no matter what skins you switch to, and regardless of how the user has modified the layout.
i'm agree with you but the fact is, to switch between skin, i have to reload the layout. And the only way i see to keep things in place is to track every position and size....not a little job...not for twomorrow. but a good idea indeed[archived].

For now, next step is to make user skin add in.
and saving choice list in config file.

thanks again for feedback.

User avatar
Viper
Just popping in
Just popping in
Posts: 16
Joined: Mon Aug 29, 2005 01:27
Location: US
Contact:

Re: TestaSkin, a new tool on the road

Postby Viper » Thu Dec 08, 2005 21:32

Martignasse,
I had taken some time away from working on my game using CEGUI, but I'm back now. This is an excellent program, and extremely useful. Keep up the excellent work.
I did notice that the selection of the skin did not seem to work correctly. When I selected, it used the one above the one that I clicked on.
I look forward to the finished product.


Return to “Skins and Themes”

Who is online

Users browsing this forum: No registered users and 1 guest