You have searched the archives for 'gba'.

Fastest way to draw shadows and blend layers in iOS

Published by Petrakeas in Software - 1 comment

Screen-shot-2011-09-02-at-6

And by fastest I mean performance wise. Right now I’m working on an application that has to perform custom drawing (bezier curves) in real time and I am trying to achieve an oscilloscope look. That’s why at first I tried to do everything using Core Graphics functions (mainly CGContext functions) inside a custom drawRect function in my custom UIView. Core Graphics is very powerful and you can almost do what Photoshop does, in a programmatic way. The downside is that many functions are quite slow because they don’t use hardware acceleration.

For example, I first loaded the background of my oscilloscope inside a custom drawRect using Core Graphics and then painted curves on it using some interesting blending modes. I figured that it was quite faster to have the background on a separate UIView and just draw the curves on my custom UIView (which was on top of the other). This is due to the fact that layer compositing (CALayers and UIviews) uses hardware acceleration. On the other hand, when the background image was rendered using Core Graphics it caused heavy use of CGSBlendRGBA8888toRGBA8888 as Instruments showed.

Another way to blend layers and images is to use CGLayers but they are also slow due to the same reason. So, the fastest way to blend layers and images is to place them in separate CALayers or UIViews (you might prefer using CALayers to UIViews when user won’t be able to interact with the object). The disadvantage of this method  is that you can only blend them the normal way (you can’t use color dodge blend mode for example).

Secondly, I wanted to achieve a glow effect, so I decided to use shadow with a bright color. At first I used CGContextSetShadowWithColor on the layer of my curves. It proved to be very slow and the CPU usage increased proportionally to the amount of blur. This was caused by the fact that the shadow is implemented using a correlation function. As a result I decided to try the same with the shadow function of the CALayer of my UIView (self.layer.shadowRadius=8; … ). I was surprised to see that it almost had no impact on the performance even for bigger pixel radius! I am not sure but maybe this shadow function is hardware accelerated or has a more optimized implementation.

To sum up, iOS has a lot of graphics frameworks, some of which are just wrappers for the low level ones and others have completely different implementation. Unfortunately you have to learn the hard way in order to find the one who suits you right. For example when I used UIGraphicsGetCurrentContext inside the init function of my UIView  to initialize a CGLayer, the CGContext at that point was not intended for a display. The result was that this CGLayer was not on graphics memory and the rendering was very slow. So, I had to initialize it inside drawrect! This is just an example of how the performance of your application can vary from small changes…

UPDATE: for even faster shadows (for paths) create a shadowpath. Read more here.

UPDATE2: I added some functions to create bezier curves easily. Read the post here.

Kingston SSDNow V Series 40GB review

Published by Petrakeas in Hardware, review - 29 comments

PA230019_resize

Πριν λίγο κυκλοφόρησε το νέο SSD της Kingston (V series) χωρητικότητας 40GB   και σας έχουμε αποκλειστικό review! Πρόκειται για ένα απίστευτα γρήγορο θηριάκι, στην τιμή των 77,76€… Για να σας προϊδεάσω θα αναφέρω από τώρα ότι η ταχύτητα ανάγνωσης άγγιξε τα 200ΜΒ/sec. Αναλυτικό review και φωτογραφίες ακολουθούν παρακάτω, όπου θα αφήσουμε τα νούμερα να μιλήσουν.

UPDATE: στην Ελλάδα θα είναι διαθέσιμο από τις 9 Νοεμβρίου
Read more

Τι μπορεί να κάνει ένα Game boy Advance?

Published by stelabouras in Consoles, Gaming, Videos - 2 comments

Wiggler Video Post 

Λογικά η απάντηση που έρχεται κατευθείαν είναι “Όχι πολλά”, δεδομένου ότι δεν έχουν βγει games για την συγκεκριμένη πλατφόρμα με φανταστικά 3D graphics. Δείτε όμως το παρακάτω tech demo (Blueroses 3d) για τις δυνατότητες της κονσόλας και είμαι σίγουρος πως θα αλλάξετε γνώμη.

Αν και έχουν κυκλοφορήσει κάποια 3D games στο GBA, ωστόσο πιστεύω πως κανένα από αυτά δεν έκανε χρήση του 100% της δύναμης του, αποδεικνύοντας πως η ίσως “ξεχασμένη” αυτό τον καιρό (βλ. Wii, DS) κονσόλα της Nintendo δεν έχει πει ακόμα την τελευταία της λέξη…

Ημερομηνία κυκλοφορίας του καινούριου Need For Speed!

Published by ispofacto in Consoles, Gaming - 1 comment

need_for_speed_carbon.jpgΌπως οι περισσότεροι θα γνωρίζουν το καινούριο Need For Speed θα ονομάζεται Need For Speed Carbon. O λόγος που θα ονομάζεται έτσι θα είναι επειδή θα λαμβάνει χώρα στην τοποθεσία Carbon στην Καλιφόρνια, που συμβαίνουν αγωνιστικές…κόντρες. Η Electronic Arts σήμερα ανακοίνωσε την ημερομηνία κυκλοφορίας: 10 Νοεμβρίου 2006. Το παιχνίδι όπως συνήθως θα κυκλοφορήσει παντού: Xbox 360, PS3, PS2, Xbox, GameCube, DS, PSP, GBA και PC.

Sims 2 mobile version

Published by ispofacto in Gaming - 3 comments

Το πετυχημένο παιχνίδι Sims 2 μετά την μεταφορά του σε όλες τις γνωστές κονσόλες (PS2, XBox, GameCube, Nintendo DS, GBA, PSP) αποφασίστηκε από την EA η κυκλοφορία του και στα κινητά. Το Sims 2 θα δίνει την δυνατότητα στους παίκτες να πάρουν τον πλήρη έλεγχο της ζωής των Sims τους όπως ακριβώς και στην έκδοση για PC και στις εκδόσεις για κονσόλες δηλαδή.