Selasa, 16 Juni 2015

Font OpenGL 3D

Pagi hari ditemani roti dan kopi untuk sarapan...dan tentu saja laptopku untuk ngeblog...

Pagi rekan-rekan sekalian, salam sejahterah selalu. Sebenarnya ogut agak sedih pagi ini karena berita terungkapnya fakta-fakta baru kasus ‘Engeline di Bali’...tetapi blog harus jalan terus dan kali ini aku akan memberikan contoh program yang menampilkan font di OpenGL.

Font kadang perlu ditampilkan di sebuah program game atau program grafik, di OpenGL ternyata sangat mudah untuk menampilkan font seperti gambar-gambar yang ogut sertakan di bawah ini.




Untuk menampilkan font ternyata hanya perlu 3 langkah saja. Pertama buat font-nya dengan fungsi di bawah ini.

unsigned int create_font(unsigned int font_size, HDC hdc_p)
{
    HFONT hfont_var;
    unsigned int listbase_var;

    listbase_var = glGenLists(128);

    hfont_var = CreateFont(font_size, 0, 0, 0,
        FW_BLACK,
        FALSE, FALSE, FALSE,
        ANSI_CHARSET,
        OUT_TT_PRECIS,
        CLIP_DEFAULT_PRECIS,
        DEFAULT_QUALITY,
        FF_DONTCARE |
        DEFAULT_PITCH,
        "Consolas");
        //"Arial");

    if (!hfont_var)
    {
        MessageBox(NULL, "Can not create font",
            "Font Error", MB_OK);
        return NULL;
    }

    SelectObject(hdc_p, hfont_var);
    wglUseFontBitmaps(hdc_p, 32, 128, listbase_var);

    return listbase_var;
}

Kedua display font tersebut.

void display_text(unsigned int listbase_param, double X_p, double Y_p, char *string_param)
{
    //tidak ada yang perlu di display,
    //karena string ==NULL
    if (string_param == NULL)
        return;

    glRasterPos3d(X_p, Y_p, 7.0);
    glPushAttrib(GL_LIST_BIT);
    glListBase(listbase_param - 31);
    glCallLists(strlen(string_param), GL_UNSIGNED_BYTE, string_param);
    glPopAttrib();
}

Dan terakhir hapus font jika sudah tidak digunakan lagi.

void hapus_font(unsigned int listbase_param)
{
    if (listbase_param != 0)
        glDeleteLists(listbase_param, 128);
}

Mudah bukan? semoga artikel ini bermanfaat bagi rekan-rekan sekalian.

Salam sukses selalu


Heriady
heriady.yoh@gmail.com



Doa  kedamaian buat Engeline, semoga engkau tenang di tempat yang baru dalam dekapan Tuhan Yang Maha Esa, tiada lagi penderitaan yang bakal engkau alami, kami semua akan merindukanmu.


Download source code program ada di link ini.


Artikel terkait

Program pertama OpenGL 3D

Garden 3D yang dibuat dengan 3ds max

Membuat objek 3D dengan 3ds max