Tout d'abord, je vous souhaite à toutes et à tous, une merveilleuse nouvelle année 2015 !!!
Voici donc mon nouveau problème, je précise tout de même que je programme avec la JSFML (Binding JAVA)
J'ai créé un objet implémentant les interfaces Drawable et Transformable
Dans cet objet je crée un VertexArray contenant des Vertex formant des PrimitiveType.QUADS afin au final de générer une map contenant un ensemble de Tiles.
Jusque ici pas de problème.
Lorsque je dessine mon objet Map (Drawable) comme ceci :
window.
clear(new Color(32,
32,
48));window.
draw(map
); // map étant mon objet drawablewindow.
display(); L'ensemble de ma map en TileSet ( 256 * 256) s'affiche correctement et lorsque je modifie la vue, je peux facilement effectuer des translations, Scale et Rotation...
J'ai besoin ensuite d'afficher ma scène non pas directement dans le RenderWindow mais dans un RenderTexture afin d'y effectuer quelques modifications par pixel shader.
Pour ce faire je procède ainsi :
RenderStates rstates
= new RenderStates
(Camera.
View.
getTransform()); // View étant l'objet obtenu depuis le RenderWindow permettant d'effectuer translation, rotation, ...map.
draw(renderText, rState
); // renderText étant la RenderTexture et rState étant le RenderStates Dans le code de ma méthode Draw :
public void draw(RenderTarget renderTarget,RenderStates states)
{
RenderStates newStates = new RenderStates(
Transform.combine(states.transform, this.getTransform()));
renderTarget.draw(listVertex,newStates);
}
Le problème c'est que lorsque je procède ainsi, ma map en TileSet ne s'affiche qu'en partie (elle ne dépasse pas la taille donnée au RenderTexture. (ici la taille de ma fenêtre 1024 * 768)
Je pensais que la multiplication des matrices de transformation de ma vue avec la matrice de transformation locale de ma map (qui est une matrice Transform.IDENTITY) allait résoudre le problème, ... mais non.
Pouvez-vous m'aider ?
Merci d'avance
THOCED