Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8799411
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T00:18:59+00:00 2026-06-14T00:18:59+00:00

I have a function in my class which loads 2 images but only displays

  • 0

I have a function in my class which loads 2 images but only displays once based on a certain condition.

The problem is i have to load the images first before the condition, this is occurring in my main loop. And I am not sure if that is wise so was wondering what i can do to make it slightly more elegant….

This is what i have:


Main Loop:

btn_quit.RenderBttn(window,mouseX,mouseY);

Class function

void RenderBttn(sf::RenderWindow &destination,int mouseX, int mouseY)
{

    std::string img = "button.png";
    sf::Texture button;
    if (!button.loadFromFile(img)){
      exit(4);
    }

    std::string img_on = "button_on.png";
    sf::Texture button_on;
    if (!button_on.loadFromFile(img_on)){
      exit(5);
    }

    sf::Sprite sprite(button);
    m_w = sprite.getLocalBounds().width; //get dimensions
    m_h = sprite.getLocalBounds().height; //get dimensions

    sf::Sprite result(IsIn(mouseX,mouseY) ? button_on : button);    //check if mouse is over the button 
    result.setPosition(m_x,m_y);
    destination.draw(result);
}

One solution i had was use fixed numbers of button size, but then that restricts the ability to change image sizes at a later date.

But also im loading 2 images in my main loop every time, surely this is bad for perfrmance?

Hope you can help 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T00:19:00+00:00Added an answer on June 14, 2026 at 12:19 am

    What you should do is store the loaded images as variables that can be accessed in your main loop. For example if your main loop is inside a class, add sf::Texture button; member variables to it. When you load the program, load those two images, and then you can perform your checks every iteration of the loop to see whether or not the draw them. The key here is to load once and store them in memory, choosing to use them when you need to. If you notice in most games you play, typically at the start of a map, all of its resources such as textures, sounds etc are loaded at the “loading screen”, at which point they sit in memory until they are used (note not all games are like this, but its just an example).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Exception base class which defines a stream function: class Exception {
I have addFile function in my TableModel class which inserts a new record at
I have a class which has a function to retrieve children elements from a
I have a Login Class which has a function: isCorrect() that takes username and
I have a relatively simple class which deletes a post: function delete_post($postid, $reason){ //Stuff
I have a class ( EAGLView ) which calls a member function of a
I have a function which looks something like this, it returns a noncopyable class
Suppose I have a function which looks like this: template <class In, class In2>
I have a class named toto which I send to a function that does
I have a script which similar to this: foo.php class Foo { function Foo()

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.