No Fragment support right now

5. septembre 2010

Pour passer d’une page à une autre sous Windows Phone 7 avec Silverlight, nous utilisons la classe NavigationService et plus précisément sa méthode Navigate(Uri).

Or, il est finalement assez fréquent de vouloir naviguer vers la même page mais en changeant des données statiques (par exemple un objet racine ou un DataContext).

Le truc balot c’est que le Windows Phone 7 ne supporte pas de naviguer vers la même Uri.
Ainsi le code suivant ne marche pas deux fois:

NavigationService.Navigate(new Uri("/CollectionPivotPage.xaml", UriKind.Relative));
FrameworkElement root = Application.Current.RootVisual as FrameworkElement;
root.DataContext = (sender as FrameworkElement).DataContext; 

Ce qui est dommage car les services de navigations apportent le support du Back qui est bien pratique.

Pour résoudre ce problème, il suffit tout bêtement de faire en sorte que l’URI ne soit jamais la même:

NavigationService.Navigate(new Uri("/CollectionPivotPage.xaml?dummy=" + 
App.GetNextDummy(), UriKind.Relative));

La méthode GetNextDummy retournant toujours un entier long de plus en plus grand:

static long dummyGenerator;

public static long GetNextDummy()
{
    return dummyGenerator++;
}
Bookmark and Share

Windows Phone, .Net

Nova4Phone

31. août 2010

Allez hop une nouvelle vidéo de teasing sur Nova4Phone:

Unleashed the power of the Windows Phone 7

L’idée de cette vidéo est de montrer le processus créatif et les usages de Nova4Phone.

N’hésitez pas à venir liker Nova4Phone sur Facebook:
http://www.facebook.com/home.php#!/video/video.php?v=461276955395

Bookmark and Share

3D, Windows Phone, Nova

Rajouter un événement sur le changement d’une DependencyProperty avec Silverlight pour Windows Phone 7

16. août 2010

La problématique est la suivante : J’ai une DependencyProperty dans une application Silverlight et cette dernière n’a pas d’événement lorsque sa valeur change.

Or, il faut que dans mon application je sois notifié sinon ca ne marchera pas.

Quel cruel dilemne! D’autant plus qu’en WPF je n’aurai aucun mal à faire cela puisque je pourrai directement me brancher dessus en tant qu’owner ou bien encore récupérer ses métadatas et rajouter un événement.

Mais sous Windows Phone 7, point de tout cela. Heureusement il existe (au moins) une solution (je dis au moins, car au bureau on veut me faire croire qu’il existerait d’autres solutions mais plus élégantes. Comme pour le moment ils n’ont rien trouvé, je publie la mienne:))

 

Nous allons tout simplement faire un binding entre la propriété que je veux surveiller et une DependencyProperty que je vais créer et ou je pourrais sans problème indiquer un événement. Ainsi quand ma propriété d’origine va changer, le binding va automatiquement changer ma propriété de surveillance qui me lèvera gentiment un événement.

En code cela donne donc ceci:

using System;
using System.Windows;
using System.Windows.Data;
using Microsoft.Phone.Controls;

namespace WindowsPhoneApplication1
{
    public class DependencyProperyWatcher<T> : DependencyObject
    {
        public event EventHandler ValueChanged;
        public static readonly DependencyProperty property = 
DependencyProperty.Register("Value", typeof(T),
typeof(DependencyProperyWatcher<T>), new PropertyMetadata(OnvalueChanged)); static void OnvalueChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e) { ((DependencyProperyWatcher<T>) d).RaiseValueChanged(); } public DependencyProperyWatcher(DependencyObject d, string propName) { var bnd = new Binding(propName) { Source = d, Mode = BindingMode.OneWay }; BindingOperations.SetBinding(this, property, bnd); } void RaiseValueChanged() { if (ValueChanged != null) ValueChanged(this, EventArgs.Empty); } } public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); } public void test() { DependencyProperyWatcher<double> toto =
new DependencyProperyWatcher<double>(this, "Width"); } } }

 

Via ma variable toto, je peux avoir accès à un événement qui sera levé à chaque fois que la propriété Width de ma page changera !

Bookmark and Share

Windows Phone, Silverlight, .Net ,

YouTube dans le blog

30. mai 2010

Petit test d'intégration d'une vidéo YouTube:

Bookmark and Share

Nova, Windows Phone

Nova4Phone Preview 2

8. mai 2010

image

Nova4Phone avance bien puisque les animations (positions, rotations, chemins, scaling) sont désormais gérées.

De plus le système d’actions de Nova est pris en compte: on peut donc toucher des objets pour déclencher des interactions.

Une petite vidéo pour illustrer tout ça.

 

 

  

 

Bookmark and Share

.Net, Nova, Windows Phone

Et ca continue…

3. mai 2010

image

 

Allez hop nouvelle version avec:

- Double texturation
- Culling (Back face et frustrum)
- Gestion des lightmaps
- Export direct depuis Nova

Prochaine étape:

- Collisions
- Actions

 

Ce qui est dommage c’est que je reprends le taf demain, ca va fortement réduire ma productivité :(

Par contre, au passage, XNA 4.0 ne gérera pas les shaders sur Windows Phone dans cette release. C’est fort dommage, ouh la oui!

Allez hop, petite vidéo pour voir le truc tourner en live.

Bookmark and Share

.Net, Nova, Windows Phone

Ca progresse!!

2. mai 2010

image

 

 

 

Le week-end a été prolifique. Nova4Phone grandit bien,il a pris 3 kilos et la maman va bien.

La nouvelle version supporte l’UI en mode hardware, les coordonnées de textures sont intégrées et le mécanisme de chargement/cache des scènes fonctionne.

 

De plus, cette version supporte les sous-objets ainsi que les multi-matériaux.

J’aimerai progresser sur la partie rendu (notamment la partie éclairage) mais sans shader c’est assez infaisable.

La sauvegarde se fait via l’Isolated Storage.

Ce qui me surprend le plus c’est les performances de l’émulateur. Selon plusieurs sources bien informées, il rendrait le même niveau qu’un vrai Windows Phone ce qui est une excellente nouvelle.

Avec 256 Mo de RAM et un petit processeur qui envoie du pâté basque, on se retrouve avec une bombe entre les doigts.

Voila, je continue mon voyage au petit de Windows Phone 7…

Bookmark and Share

Nova, Windows Phone

Alive!!! It’s alive!!!

30. avril 2010

Ce message est top secret et je devrais vous couper la langue à la serpe rouillée une fois que vous l’aurez lu.

La première version 0.0.0.1 de Nova4Phone tourne sur l’émulateur. La première chose à dire c’est que le développement sur Windows Phone 7 c’est juste génial. Ca coule tout seul, c’est rapide, efficace. Je suis fan.

image

Pour autant, tout n’est pas encore disponible. Par exemple, il n’est pas possible de faire des shaders customs (pourtant le matériel semble être capable de faire des shaders v2.0). J’espère juste que ce n’est que temporaire.

De plus, le truc qui me broute méchamment la nouille c’est le passage en main droite au niveau du repère. Bon ok, je ne vais pas en pondre des briquets mais c’est quand même lourd.

Hormis ces quelques détails, le boulot effectué par Microsoft sur le SDK et les outils fait vraiment plaisir à voir.

Les scènes produites par Nova sont lisibles via le web par le Windows Phone.

Bien sur de nombreuses contraintes liées à la plateforme (et surtout à l’abscence des shaders customs) sont à noter (liste non exhaustive):

- Pas de point lights
- Pas de shaders
- Juste 2 textures en multi-texturing

Il est évident que le développement n’en est qu’à ses débuts et que tout ça va progresser.

Par contre, comme le Windows Phone est multitouch, il est super agréable de se promener dans une scène avec les doigts.

De plus, le support de l’accéléromètre ouvre la voie à une nouvelle manière fort intuitive de naviguer.

 

Bon le truc maintenant c’est d’arriver à suffisamment scier les nouilles à Microsoft (message subliminal à l’attention de Mitsu et de Pierre C.) pour obtenir un prototype pour que je puisse tester tout cela en live.

Bookmark and Share

Nova, Windows Phone