首页 > 代码库 > 《OpenGL ES 2.0 Programming Guide》第12章“最简单的ReadPixels并保存为BMP”示例代码【C语言版】

《OpenGL ES 2.0 Programming Guide》第12章“最简单的ReadPixels并保存为BMP”示例代码【C语言版】

由于《OpenGL ES 2.0 Programming Guide》原书并没有提供第12章的示例代码,书上的代码也只提到关键的步骤,而网上大多是Android/iOS版本的示例,C/C++的大都基于OpenGL或OpenGL ES 3.0,为了加深理解,遂自己实现了一份C语言版本的,希望能够帮助到同样喜欢OpenGL ES 2.0的同学。

废话不多说,直接上代码


#include "stdafx.h"
#include "esUtil.h"

#include <stdlib.h>
#include <stdio.h>

#define SIZE 512

typedef struct
{
    GLuint programFBOObject;
    GLuint programObject;
    GLuint texture;
    GLuint frameBuffer;
    GLuint depthRenderBuffer;

    GLint positionFBOLoc;
    GLint mvpFBOLoc;

    GLint positionLoc;
    GLint mvpLoc;
    GLint texcoordLoc;
    GLint samplerLoc;

    GLfloat *vertices;
    GLfloat *texcoords;
    GLuint *indices;

    int numIndices;

    GLfloat angle;

    ESMatrix mvpMatrix;
} UserData;

int InitFBO(ESContext *esContext, GLint width, GLint height)
{
    GLenum status;
    GLint maxRenderbufferSize;

    UserData *userData = http://www.mamicode.com/(UserData *)esContext->userData;>


按 c 或 C 截屏,图片保存为 screenshot.bmp

《OpenGL ES 2.0 Programming Guide》第12章“最简单的ReadPixels并保存为BMP”示例代码【C语言版】