Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (115)
games submitted by our members
Games in WIP (563)
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  
  Fastest way to draw only a part of an image  (Read 4057 times)
0 Members and 1 Guest are viewing this topic.
Offline stefanha

Senior Newbie




I love YaBB 1G - SP1!


« Posted 2002-12-21 04:14:52 »

I'm wondering what the fastest way to draw only a portion of an Image is.  Right now I am using g.drawImage ( Image image, int sx1, int sy1, int sx2, int sy2, int dx1, int dy1, int dx2, int dy2, ImageObserver observer ).  However, this function can also do scaling, so I'm not sure if it is optimized to deal with the case when no scaling has to be done.

The other way I know is to do g.setClip (...) and then g.drawImage().  But then I have create a compatible Graphics object from g, as to not screw up the original clipping area.  I think that might slow things down...

Which way is faster?

from, Stefan
Offline stefanha

Senior Newbie




I love YaBB 1G - SP1!


« Reply #1 - Posted 2002-12-24 04:19:20 »

Okay, I've done some testing and figured out the fastest way to do it.  Both the scaled drawImage() and g.create() are not the fastest.  The best way to do it is:
1  
2  
3  
4  
5  
6  
7  
paint (Graphics g)
{
Shape oldClip = g.getClip ();
g.setClip (x, y, width, height);
g.drawImage (sx, sy, x - sx, y - sy, null );
g.setClip (oldClip);
}


The cool thing about this approach is that if you have a loop that renders several pieces from different images, you can take the "Shape oldClip = g.getClip()" and "g.setClip (oldClip)" out of the loop and only call them once the loop is done, saving yourself some processor cycles.

from, Stefan
Offline pepe

Junior Member




Nothing unreal exists


« Reply #2 - Posted 2003-01-03 08:04:47 »

i seem to recall from an old thread of the previous board that setClip() creates garbage.
Can anyone confirm?

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline cknoll

Junior Member




Flame On!


« Reply #3 - Posted 2003-01-03 21:51:39 »

I hae used set clip to redraw various sprites on a game board and did not notice gc pauses due to excessive garbage collecton (and the game was running at 60fps adn there were about 5 set clips per frame).

-Chris
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

radar3301 (12 views)
2014-09-21 23:33:17

BurntPizza (30 views)
2014-09-21 02:42:18

BurntPizza (19 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (27 views)
2014-09-20 20:14:06

BurntPizza (31 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (102 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
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!