[Les pointeurs]Lié un objet à un autre par référence
Bonjour à tous,
Aujourd'hui, l'utilisation des pointeurs avec c# :
Je suis en train de faire un p'tit moteur 3D avec DirectX et je suis confronté à un petit problème :
Voilà un bout de code qui permet de modifier une instance de Device depuis l'appel de la méthode d'une classe Balle, un bête ref :
Code:
1 2 3 4 5 6 7 8 9 10 11
| public void BalleRendering(ref Device device)
{
for (int i = 0; i < meshmat.Length; i++)
{
device.Material = meshmat[i];
device.SetTexture(0, meshtext[i]);
mesh.DrawSubset(i);
}
} |
Appel de cette méthode dans le code program.cs :
Code:
1 2 3 4
| balle.BalleRendering(ref device);
//device a été modifié gràce à l'appel de BalleRendering()
device.EndScene(); |
Mais :
J'aimerais cependant que ma signature de méthode soit plus du style :
Code:
1 2 3 4 5 6 7 8 9 10
| public void BalleRendering()
{
for (int i = 0; i < meshmat.Length; i++)
{
device.Material = meshmat[i];
device.SetTexture(0, meshtext[i]);
//On dessine le mesh
mesh.DrawSubset(i);
}
} |
Et que dans mon objet, je possède une référence à l'objet device. Un truc du style :
Code:
1 2 3 4
| public ref Device MyDevice
{
set { ... }
} |
Ensuite dans mon program.cs, je ferai l'appel de cette façon :
Code:
1 2 3 4 5 6 7
|
//on "lie" l'objet device à l'objet balle
balle.MyDevice = device;
balle.BalleRendering();
device.EndScene(); |
Alors j'ai pensé aux pointeurs de c++ mais il doit bien exister une autre manière non ? Ou alors je dois forcément passer par du code unsafe ? Ou alors je me plane complètement ?