Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (744)
Games in Android Showcase (225)
games submitted by our members
Games in WIP (825)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Efficiency of render code  (Read 3845 times)
0 Members and 1 Guest are viewing this topic.
Offline cygnus
« Posted 2017-02-26 01:24:27 »

Hi! I'm wondering if you have any tips for the following render loop:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
public void render() {
   BufferStrategy bufferStrat = getBufferStrategy();
   if (bufferStrat == null) {
       createBufferStrategy(3);
       return;
   }
   do {
       if (StateManager.state == StateManager.INGAME) {
      do {
          for (int i = 0; i < overlay.length; i++)
         overlay[i] = 0;
          Graphics2D g2d = (Graphics2D) bufferStrat.getDrawGraphics();
          // Draw to layer1 using its data buffer (pixel by pixel)
                    // Contains stuff like level, player, blocks, entities, etc.
          g2d.drawImage(layer1, 0, 0, getWidth(), getHeight(), null);
          // Draw to layer2 using its data buffer (pixel by pixel)
                    // Contains stuff like mouse, HUD and other overlay stuff
          g2d.drawImage(layer2, 0, 0, getWidth(), getHeight(), null);
          g2d.dispose();
      } while (bufferStrat.contentsRestored());
      bufferStrat.show();
       }
   } while (bufferStrat.contentsLost());
    }

The textures that are drawn to the layers are stored as a 1D array of pixels (ints). As you can see, I've read up on the recommendations of people here, but I'm not so sure I've implemented it correctly. My main question is: is it a good idea, performance wise, to have the pixels stored in an array or as a BufferedImage?
Offline otoomey

Junior Newbie


Exp: 5 years



« Reply #1 - Posted 2017-08-19 14:23:35 »

If you use BufferedImages then Java2D can hardware accelerate your images, making drawing much MUCH faster (Basically java2D puts your image onto the Graphics card). If you use pixel arrays then you lose this optimization.
Pages: [1]
  ignore  |  Print  
 
 

 
Ecumene (143 views)
2017-09-30 02:57:34

theagentd (212 views)
2017-09-26 18:23:31

cybrmynd (291 views)
2017-08-02 12:28:51

cybrmynd (283 views)
2017-08-02 12:19:43

cybrmynd (293 views)
2017-08-02 12:18:09

Sralse (286 views)
2017-07-25 17:13:48

Archive (963 views)
2017-04-27 17:45:51

buddyBro (1090 views)
2017-04-05 03:38:00

CopyableCougar4 (1661 views)
2017-03-24 15:39:42

theagentd (1422 views)
2017-03-24 15:32:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!