美文网首页
创建OpenGL渲染环境

创建OpenGL渲染环境

作者: Mr_约科 | 来源:发表于2019-07-08 11:20 被阅读0次

创建时间:2019.07.06
修改时间:
ONE 2019.07.07
TWO 2019.07.08


1.选定像素格式

    //设备上下文句柄
    HDC dc = GetDC(hwnd);
    PIXELFORMATDESCRIPTOR pfd;
    memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
    pfd.nVersion = 1;
    pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
    //颜色缓冲区R(8bit)G(8bit)B(8bit)A(8bit)
    pfd.cColorBits = 32;
    //深度缓冲器
    pfd.cDepthBits = 24;
    //蒙板缓冲区
    pfd.cStencilBits = 8;
    //像素类型
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    //选取一个像素格式
    int pixelFormat = ChoosePixelFormat(dc, &pfd);
    //设置像素格式
    SetPixelFormat(dc, pixelFormat, &pfd);

2.创建渲染环境

    HGLRC rc = wglCreateContext(dc);

3.使渲染环境生效

    wglMakeCurrent(dc, rc);

额外的工作

1.实现加载文件的接口

unsigned char * LoadFileContent(const char*path/*文件的路径*/, int &filesize/*文件有多大*/);
{
    //初始化
    unsigned char* fileContent = nullptr;
    filesize = 0;
    //打开文件
    FILE* pFile = fopen(path, "rb"/*读二进制方式打开文件*/);
    //文件打开成功
    if (pFile)
    {
        //文件的指针移动到某个位置
        fseek(pFile, 0, SEEK_END/*文件结尾*/);
        //返回文件的大小
        int nLen = ftell(pFile);
        if (nLen > 0)
        {
            //文件指针回到头部
            rewind(pFile);
            //比实际大小大1,最后以'\0'标记
            fileContent = new unsigned char[nLen + 1];
            fread(fileContent, sizeof(unsigned char), nLen, pFile);
            //最后一位
            fileContent[nLen] = 0;
            filesize = nLen;
        }
        //关闭文件
        fclose(pFile);
    }
    //返回文件指针
    return fileContent;
}
fopen报错
解决方法
工程文件名--->属性选项--->C/C++--->预处理器--->在编辑窗口中添加一句命令_CRT_SECURE_NO_WARNINGS

2.场景类

scene.h

void Init();
void SetViewPortSize(float width, float height);
void Draw();

scene.cpp

void Init()
{
}

void SetViewPortSize(float width, float height)
{
}

void Draw() 
{
}

相关文章

  • 创建OpenGL渲染环境

    创建时间:2019.07.06修改时间:ONE 2019.07.07TWO 2019.07.08 1.选定像素格式...

  • 配置OpenGLES 上下文  译文

    翻译 OpenGL ES的每一 实现方式提供了一种方法来创建渲染环境管理由OpenGL ES规范要求的状态 。通过...

  • iOS - 自定义视频播放器 -- (2)

    渲染CVPixelBufferRef视频帧显示 流程 1、构建OPenGL渲染环境2、CVPixelBufferR...

  • OpenGL入门详解

    假设你已经对OpenGL有了基本的了解,知道OpenGL的渲染管线等。 1.创建渲染缓冲区 Gluint m_re...

  • 057-python库pyglet(二)

    一、Creating an OpenGL context(创建一个OpenGL环境) This section d...

  • OpenGL ES GLSL加载图片

    OpenGL ES需要渲染上下文和绘制表面才能完成图像的绘制。但是OpenGL的API并没有提供如何创建渲染上下文...

  • OpenGL ES for iOS - 2

    配置OpenGL ES上下文 OpenGL ES的每个实现都提供了一种创建渲染上下文以管理OpenGL ES规范所...

  • OpenGL ES GLKit初探

    配置OpenGL ES上下文 OpenGL ES的每种实现都提供一种创建渲染上下文的方法,以管理OpenGL ES...

  • OpenGL ES-渲染图片

    opengl只负责图片渲染过程,不负责窗口管理及上下文环境管理,因此要自己为OpenGL搭建上下文环境来管理窗口 ...

  • OSG3.4内置Examples解析【目录】

    opengl渲染管线 从整体上解读OpenGL的渲染流程 一 从整体上解读OpenGL的渲染流程 二 osg与an...

网友评论

      本文标题:创建OpenGL渲染环境

      本文链接:https://www.haomeiwen.com/subject/rgvmhctx.html