Jump to content
  • Advertisement
Sign in to follow this  
BaneTrapper

SFML question about Image/Texture

This topic is 2199 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello.
I am currently learning SFML, i am following tutorial.
I came across a point that i am suposed to do this

sf::Sprite MySpriteName;
MySpriteName.SetImage(image,true);
//Except sf::Sprite.SetImage does not exist.

I included everything
<SFML/Window.hpp>
<SFML/Graphics.hpp>
<SFML/System.hpp>

Only thing it has is Texture, and i am reading its not same thing...
A guy downloaded SFML 2.0 linked it, and used that code...
My IDE does not provide it as possibility, and compiler is giving me error:

C:\c++ Project\The Knight of Avalion2\Tile.cpp|5|error: 'class sf::Sprite' has no member named 'SetImage'|


EDIT:
Here is what sf::Sprite class holds from official site
http://www.sfml-dev....f_1_1Sprite.php

Question is, are sf::Texture replacing sf::Image cause there is still sf::Image in the class, but i cant use it... Edited by BaneTrapper

Share this post


Link to post
Share on other sites
Advertisement
I can tell you right now that the code :

sf::Sprite MySpriteName;
MySpriteName.SetImage(image,true);

Is not SFML 2.0 as Laurent changed the naming convention of methods to always start with a lowercase letter, and sprites take a Texture instead of an Image.

In terms of things that are drawn, the Texture class replaced the Image class. The Image class is used for loading, manipulating, and saving image files which is why it still exists in the system.

Basically, when you define a Texture object, that data is stored on the GPU to help speed up the drawing. An instance of an Image, however, is stored in local memory where it can be accessed and changed easier than if it were on the GPU.

Share this post


Link to post
Share on other sites
Jebbles is spot on. This is most likely version 1.6 code. Which means even if you switch code to


sf::Texture image;
image.loadFromFile("image.png");
sf::Sprite mySpriteName;
mySpriteName.setTexture(image);

there will still be some other things which might need to be changed. There were many changes up until the release candidate of sfml 2.0 which makes following many tutorials online a little difficult. However, it can be done if you put in some effort and make the changes as needed yourself.

Good Luck!

Share this post


Link to post
Share on other sites

Jebbles is spot on. This is most likely version 1.6 code. Which means even if you switch code to


sf::Texture image;
image.loadFromFile("image.png");
sf::Sprite mySpriteName;
mySpriteName.setTexture(image);

there will still be some other things which might need to be changed. There were many changes up until the release candidate of sfml 2.0 which makes following many tutorials online a little difficult. However, it can be done if you put in some effort and make the changes as needed yourself.

Good Luck!


Its kinda difficult to find a proper tutorial,
That will show how to manipulate pixels in texture/image,
make audio,

Allot of tutorials got sfml 2.0 in context and are 1.6 100% since they use sf::Sprite.SetImage();
its annoying that people do that.

Thanks on encouragement!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!