OpenGL入门笔记(十二)

简介:
成员变量区:
    GLuint base;
    GLfloat cnt1;
    GLfloat cnt2;


成员函数区:
GLvoid COpenGLDemoView::glPrint(const char *fmt, )                    // Custom GL "Print" Routine
{
    char        text[256];                                // Holds Our String
    va_list        ap;                                        // Pointer To List Of Arguments

    if (fmt == NULL)                                    // If There's No Text
        return;                                            // Do Nothing

    va_start(ap, fmt);                                    // Parses The String For Variables
        vsprintf(text, fmt, ap);                        // And Converts Symbols To Actual Numbers
    va_end(ap);                                            // Results Are Stored In Text

    glPushAttrib(GL_LIST_BIT);                            // Pushes The Display List Bits
    glListBase(base);                                // Sets The Base Character to 32
    glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);    // Draws The Display List Text
    glPopAttrib();                                        // Pops The Display List Bits
}

GLvoid COpenGLDemoView::BuildFont(GLvoid)
{
    HFONT    font;                                        // Windows Font ID
    HFONT    oldfont;                                    // Used For Good House Keeping

    base = glGenLists(96);                                // Storage For 96 Characters

    font = CreateFont(    -24,                            // Height Of Font
                        0,                                // Width Of Font
                        0,                                // Angle Of Escapement
                        0,                                // Orientation Angle
                        FW_BOLD,                        // Font Weight
                        FALSE,                            // Italic
                        FALSE,                            // Underline
                        FALSE,                            // Strikeout
                        ANSI_CHARSET,                    // Character Set Identifier
                        OUT_TT_PRECIS,                    // Output Precision
                        CLIP_DEFAULT_PRECIS,            // Clipping Precision
                        ANTIALIASED_QUALITY,            // Output Quality
                        FF_DONTCARE|DEFAULT_PITCH,        // Family And Pitch
                        "Courier New");                    // Font Name
    HDC hDC = ::GetDC(this->m_hWnd);
    oldfont = (HFONT)SelectObject(hDC, font);           // Selects The Font We Want
    wglUseFontBitmaps(hDC, 0, 255, base);                // Builds 96 Characters Starting At Character 32
    SelectObject(hDC, oldfont);                            // Selects The Font We Want
    DeleteObject(font);                                    // Delete The Font
}
GLvoid COpenGLDemoView::KillFont(GLvoid)
{
    glDeleteLists(base,96);
}
GLvoid COpenGLDemoView::KillFont(GLvoid)
{
    glDeleteLists(base,96);
}

int COpenGLDemoView::DrawGLScene()                                   
{// Here's Where We Do All The Drawing
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // Clear Screen And Depth Buffer
    glLoadIdentity();                                    // Reset The Current Modelview Matrix
    glTranslatef(0.0f,0.0f,-1.0f);                        // Move One Unit Into The Screen
    // Pulsing Colors Based On Text Position
    glColor3f(1.0f*float(cos(cnt1)),1.0f*float(sin(cnt2)),1.0f-0.5f*float(cos(cnt1+cnt2)));
    // Position The Text On The Screen
    glRasterPos2f(-0.45f+0.05f*float(cos(cnt1)), 0.32f*float(sin(cnt2)));
     glPrint("Active OpenGL Text - %7.2f", cnt1);    // Print GL Text To The Screen
    cnt1+=0.051f;                                        // Increase The First Counter
    cnt2+=0.005f;                                        // Increase The First Counter
    return TRUE;                                        // Everything Went OK
                                      // Everything Went OK
}



200782402.jpg



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/08/24/868838.html,如需转载请自行联系原作者
目录
相关文章
|
vr&ar Android开发 C++
Android OpenGL入门
Android OpenGL入门
Android OpenGL入门
|
存储 缓存 安全
OpenGL ES 入门:GLKit加载图片
OpenGL ES 入门:GLKit加载图片
185 0
OpenGL ES 入门:GLKit加载图片
|
存储 缓存
案例 02、OpenGL入门--正方形键位控制
OpenGL入门--正方形键位控制
147 0
案例 02、OpenGL入门--正方形键位控制
|
缓存 容器
案例 01、OpenGL入门--绘制三角形
OpenGL中三角形的绘制,就类似于学习编程时的Hello world,是一个入门级的使用,重点在于理解图形是如何绘制的
271 0
案例 01、OpenGL入门--绘制三角形
|
C++ 异构计算 Python
OpenGL渲染入门
## 前言 在开始之前,先来看一段图像解码序列(格式为YUV420)的4个渲染结果,这里我分别截了4张图 ![image.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/dca46d1be7dfee07981a7dea14ae3aa1.png) 其中4个渲染效果分别是 左上:直接渲染视频帧并绘制到窗口上 右上:
1809 0
|
API
OpenGL ES 入门API大全
本文章正确使用姿势:command/Ctrl + f  进行搜索对应的功能代码,找到它的详细解释。 (以下内容如有偏差,欢迎进行指正) 一.CAEAGLLayer 的使用: CAEAGLLayer 官方解释如图CAEAGLLayer,我来简单翻译一下: CAEAGLLayer 是继承于CALayer 的,可以用它在iOS 和tvOS 的设备上使用。
1498 0
下一篇
无影云桌面