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:

[code language=”cpp”]
CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast;
[/code]

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

[code language=”cpp” wraplines=”false”]
– (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;
}

[/code]

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, Read More …

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,.. Read More …

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, Read More …

1 januari..

sejenak mengingat apa saja yang gw lakukan pada beberapa 1 januari yang lalu..

1 januari 2007,.. gw masih di bandung.. lagi pontang panting ikut Pak Edy Soe ngerjain riset..
1 januari 2008,.. untuk pertama kalinya gw di luar Indonesia, yakni Taipei, Taiwan.. waktu itu lagi pontang-panting ngerjain tugas OOP (object oriented programming).. pas pergantian taon, nonton kembang api dari atap gedung asrama.. πŸ˜€
1 januari 2009,.. gw masih di Taipei, kali ini mulai pusing mikirin Thesis.. pergantian taon juga dengan nonton kembang api, tapi kali ini agak mendekat ke taipei 101 tower.. πŸ˜€
1 januari 2010,.. waktu itu gw sudah mulai bekerja di Singapore.. pergantian tahun gw lalui dengan nongkrong di Merlion Park bareng Suhadi, temen kuliah di Bandung yang kebetulan sedang transit di Singapore.. πŸ˜€

1 januari 2011,.. di kost2an berukuran 2.5 x 3.5 m, di sekitar Petaling Jaya, Malaysia.. dan yang gw lakukan ??? panik, karna tiba-tiba ada seekor nyamuk lupa bawa GPS, sehingga nyasar dan kejebak di dalem kuping kiri gw.. dan masih sempat berdesing-desing di dalem untuk beberapa lama..  arghh.. grrr.. grr.. 😑

I’m Posting every week in 2011!

I’ve decided I want to blog more. Rather than just thinking about doing it, I’m starting right now.Β  I will be posting on this blog once a week for all of 2011.

I know it won’t be easy, but it might be fun, inspiring, awesome and wonderful. Therefore I’m promising to make use ofΒ The DailyPost, and the community of other bloggers with similiar goals, to help me along the way, including asking for help when I need it and encouraging others when I can.

If you already read my blog, I hope you’ll encourage me with comments and likes, and good will along the way.

Signed,

Muhammad Teguh Satria