get EAGLview screenshot with transparency in landscape mode

this is NOT mine actually. the original source can be found at the end of this post. i post here just for helping people who may need it. so they don’t need to spend whole day for “googling” this like i did. ๐Ÿ˜€

the key to get the transparency is this line:

CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast;

now, this is the complete method. NOTE: this is for landscape mode (480 x 320), if you want in portrait, simply modify the size.

- (UIImage*) getGLScreenshot {
    NSInteger myDataLength = 480 * 320 * 4;

    // allocate array and read pixels into it.
    GLubyte *buffer = (GLubyte *) malloc(myDataLength);
    glReadPixels(0, 0, 480, 320, GL_RGBA, GL_UNSIGNED_BYTE, buffer);

    // gl renders "upside down" so swap top to bottom into new array.
    // there's gotta be a better way, but this works.
    GLubyte *buffer2 = (GLubyte *) malloc(myDataLength);
    for(int y = 0; y <320; y++)
    {
        for(int x = 0; x < 480* 4; x++)
        {
            buffer2[(319 - y) * 480 * 4 + x] = buffer[y * 4 * 480 + x];
        }
    }

    // make data provider with data.
    CGDataProviderRef provider = CGDataProviderCreateWithData(NULL,
								buffer2, myDataLength, NULL);

    // prep the ingredients
    int bitsPerComponent = 8;
    int bitsPerPixel = 32;
    int bytesPerRow = 4 * 480;
    CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();

	/***************** to handle the transparency/alpha ******************/
	CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast;
	//CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault;
	/*********************************************************************/

    CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault;

    // make the cgimage
    CGImageRef imageRef = CGImageCreate(480, 320, bitsPerComponent,
						bitsPerPixel, bytesPerRow, colorSpaceRef,
						bitmapInfo, provider, NULL, NO, renderingIntent);

    // then make the uiimage from that
    UIImage *myImage = [UIImage imageWithCGImage:imageRef];
    return myImage;
}

Source: www.iphonedevsdk.com

shiva3d causes memory leaks on iphone

if you are working with shiva3d game engine on iphone, you may notice two memory leaks once you convert the runtime package (.stk file) to xcode project using shiva authoring tools.

the memory leaks are
1. related to AudioToolbox framework
2. related to NSString

for the first one, i have no idea how to resolve it, since it was related to one of ios frameworks, and even google didn’t know :D.

and for the second, it seems the authoring tools forgot to release a dynamic NSString variable. see the image below. red rectangle is the suspect variable that you could find in initWithCoder method of S3DEngine_EAGLView class (blue rectangles). to resolve this, simply release the variable as shown in green rectangle.

click for bigger image

“mengakali Tuhan..”

Terkadang aku sering berpikir begini, Tuhan bekerja dengan cara yang aneh..

Sejak kecil hingga sekarang, aku merasa bahwa aku sering diberi dan dihadapkan pada hal-hal yang sebenarnya tidak aku inginkan..

Dalam artian, misalkan ada 2 pilihan, A dan B, lalu kemudian aku menginginkan A, sangat-sangat menginginkan A, hingga berdoa siang malam agar mendapatkan A,.. lalu yang terjadi kemudian adalah aku malah mendapatkan B dengan sempurna, tak ada tanda-tanda nyaris mendapatkan A.. sungguh telak sekali.. ๐Ÿ˜€

Contoh lain, misal aku tidak menyukai sesuatu, bahkan bisa jadi membenci sesuatu.. nah, pada satu kesempatan yang akan datang, aku justru dihadapkan atau ditempatkan pada hal-hal yang tidak aku sukai tersebut.. mau tidak mau aku harus beradaptasi dengan hal yang tidak aku sukai tersebut.. yah ibarat pukulan yang berbalik arah ke muka sendiri.. sungguh telak sekali.. ๐Ÿ˜€

Boleh saja kalian berpikir, Continue reading

formula penentuan Fedora codename

Fedora 14 LiveCD KDE

Image by Sylvain Naudin via Flickr

sebenernya dah cukup lama penasaran dengan, bagaimana fedora menentukan codename setiap kali rilis ? sebelum ini yang gw tau fedora team akan menggelar voting di fedora project setelah menemukan beberapa kandidat codename.. tapi yang bikin gw penasaran, itu kandidat codename gimana nyarinya? apa cuma sekedar menerima masukan doank, trus pas dirasa kedengaran keren, dimasukkan lah nama tersebut sebagai kandidat ?? atau ada ketentuan-ketentuan lain ??…

selama ini sih penasaran tapi ga terlalu tertarik buat cari tau.. seperti kata Mas Shakespeare, apalah arti sebuah nama.. hehe.. nah akhir-akhir ini baru kepikiran buat nyari tau.. dan akhirnya nemu.. ๐Ÿ˜€

ternyata,.. Continue reading

hasil review the stats helper monkeys..

cuma merhatiin hasil review ini,.. ada fakta menarik ternyata…

ternyata diperoleh kesimpulan:

  1. banyak orang indonesia yang mencoba memanfaatkan google untuk mencari kata-kata ataupun ucapan ulang tahun.. ๐Ÿ˜€
  2. pengunjung blog ini adalah (kebanyakan) mereka yang nyasar setelah memasukkan keyword “kata-kata ulang tahun” di google.. ๐Ÿ˜€
  3. tentu saja mereka akan masuk ke laman ini terlebih dahulu.. hehehe..

dan karena fakta tersebut, iseng-iseng coba mencari tau via google sejauh mana kata-kata ulang tahun gw itu tersebar.. dan hasilnya, woww !!.. mulai dari yang persis banget hingga varian-variannya.. tak apa, gw seneng.. ๐Ÿ™‚

matematika dan lulusannya..

tulisan yang sama yg gw post di masukitb.com..

—————————————

ga tau kenapa tiba-tiba pengen nulis ini.. sedikit cerita tentang dunia Matematika ITB dari sudut pandang gw pribadi.. tentu saja didasarkan pada rentang tahun 2001 – 2006,.. mudah-mudahan isinya tak banyak berubah dengan keadaan sekarang, dan bisa sedikit mencerahkan..

kalau gw ditanya kenapa dulu gw milih matematik, terus terang gw ga tau gimana jawabnya… ๐Ÿ˜€ gw ga punya alasan apapun.. sama sekali.. waktu itu gw baru lulus SMA, dan gw ga mau mengotori otak gw dengan hal yang berat-berat tentang bayangan masa depan.. ๐Ÿ˜€ gw cuma mikir simple,.. gw suka matematik sejak SD, dan kemudian guru matematik SMA gw juga nyaranin gw untuk milih Matematika ITB,.. jadi, yaudah gw pilih itu.. dan Matematika ITB bener-bener pilihan pertama gw.. ๐Ÿ˜€

gw ga pernah mikirin karir gw nanti seperti apa dan bagaimana.. dan sama seperti kebanyakan orang, termasuk orangtua gw, satu-satunya karir lulusan matematika yang gw tau saat itu cuma guru atau dosen.. tapi waktu itu gw ga peduli..

gw suka matematik, gw pilih Matematik ITB, titik !

setelah lulus dan mulai kuliah, Continue reading