win7下VS2013搭建opengl es 2.0的C++开发环境
来源:互联网 发布:正规java培训班 编辑:程序博客网 时间:2024/05/20 17:10
win7下VS2013搭建opengl es 2.0的C++开发环境
@(预发布)[Opengl es]
文章参考:
http://codingnow.cn/opengles/1501.html
1. 下载AMD的OpenGL ES2.0的模拟器,下载地址:
http://www.opengles-book.com/ESEmulator.2009-04-28-v1.4.APRIL_2009_RELEASE.msi
2. 拷贝文件:
- (1)、将 C:\Program Files (x86)\AMD\OpenGL ES 2.0 Emulator v1.4\bin 文件下的 libEGL.dll 和 libGLESv2.dll 文件拷贝到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 目录下
- (2)、将 C:\Program Files (x86)\AMD\OpenGL ES 2.0 Emulator v1.4\lib 文件下的 libEGL.lib 和 libGLESv2.lib 文件拷贝到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib 目录下
3. 案例代码下载地址:
- (1)、案例代码地址: http://download.csdn.net/detail/aiwusheng/9269511
- (2)、用VS2013开”ES_001_Triangle\Chapter_2\Hello_Triangle\Hello_Triangle.sln”文件
4. 代码实现:
// stdio#include <stdio.h>#include <stdlib.h>#include "esUtil.h"GLuint programObject;/*** 加载shaser*/GLuint LoadShader(GLenum shaderType, const char* pSource) { // 创建shader程序 GLuint shader = glCreateShader(shaderType); if (shader) { glShaderSource(shader, 1, &pSource, NULL); glCompileShader(shader); GLint compiled = 0; glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); if (!compiled) { GLint infoLen = 0; glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); if (infoLen) { char* buf = (char*)malloc(infoLen); if (buf) { glGetShaderInfoLog(shader, infoLen, NULL, buf); printf("Could not compile shader %d:\n%s\n", shaderType, buf); free(buf); } glDeleteShader(shader); shader = 0; } } } return shader;}/*** 编译shader* @param pVertexSource 顶点着色器* @param pFragmentSource 片元着色器*/GLuint CreateProgram(const char* pVertexSource, const char* pFragmentSource) { // 加载顶点着色器 GLuint vertexShader = LoadShader(GL_VERTEX_SHADER, pVertexSource); if (!vertexShader) { return 0; } // 加载片元着色器 GLuint pixelShader = LoadShader(GL_FRAGMENT_SHADER, pFragmentSource); if (!pixelShader) { return 0; } GLuint program = glCreateProgram(); if (program) { // 连接顶点shader glAttachShader(program, vertexShader); // 链接片元shader glAttachShader(program, pixelShader); glLinkProgram(program); GLint linkStatus = GL_FALSE; glGetProgramiv(program, GL_LINK_STATUS, &linkStatus); if (linkStatus != GL_TRUE) { GLint bufLength = 0; glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength); if (bufLength) { char* buf = (char*)malloc(bufLength); if (buf) { glGetProgramInfoLog(program, bufLength, NULL, buf); printf("Could not link program:\n%s\n", buf); free(buf); } } glDeleteProgram(program); program = 0; } } return program;}/**初始化*/int Init(){ // 顶点shader char vShaderStr[] = "attribute vec4 vPosition; \n" "void main() \n" "{ \n" " gl_Position = vPosition; \n" "} \n"; // 片元shader char fShaderStr[] = "precision mediump float;\n"\ "void main() \n" "{ \n" " gl_FragColor = vec4 ( 1.0, 0.0, 0.0, 1.0 );\n" "} \n"; // 创建着色器程序 programObject = CreateProgram(vShaderStr, fShaderStr); // 视口大小 glViewport(0, 0, 800, 600); return TRUE;}/** 绘制方法*/void Draw(ESContext *esContext){ // 顶点位置数据 GLfloat vVertices[] = { 0.0f, 0.5f, 0.0f, -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f }; // 清理颜色缓存和深度缓存 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); // 清屏颜色 glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 设置使用的着色器 glUseProgram(programObject); // 加载顶点数组 glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vVertices); // 启用顶点数组 glEnableVertexAttribArray(0); //以三角形的方式进行绘制 glDrawArrays(GL_TRIANGLES, 0, 3); // eglSwapBuffers(esContext->eglDisplay, esContext->eglSurface);}/*** Main函数*/int main(int argc, char *argv[]){ // ESContext esContext; //UserData userData; // 初始化 esUtil中的方法 esInitContext(&esContext); //esContext.userData = &userData; // window相关,创建窗口的大小 esCreateWindow(&esContext, "Hello Triangle", 800, 600, ES_WINDOW_RGB); // 进行数据的初始化 if (!Init()) return 0; // 循环调用draw方法 esRegisterDrawFunc(&esContext, Draw); // MainLoop esMainLoop(&esContext);}
5. 运行效果:
阅读全文
1 0
- win7 VS2013下搭建opengl es 2.0开发环境
- win7下VS2013搭建opengl es 2.0的C++开发环境
- 在win7下搭建OpenGL ES 2.0的开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建OpenGL ES 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- win7下搭建opengl es 2.0开发环境
- OpenGl ES结合vs2013开发环境搭建
- vs2013环境下搭建openGL开发环境
- windows下搭建OpenGL ES开发环境
- windows下搭建OpenGL ES开发环境
- windows下搭建OpenGL ES开发环境
- OpenGL ES 2.0 windows开发环境搭建
- 宏定义debug代码
- DNS在架构中的运用
- VC 修改主菜单和子菜单的文本
- 使用Vue.js框架搭建火车票查询系统
- iOS判断字符串中是否有中文及处理方式
- win7下VS2013搭建opengl es 2.0的C++开发环境
- android Bugly升级SDK适配Android 7.0
- 如何去掉SugarCRM的版权信息?
- php后台调shell脚本
- CodeForces 810A Straight <<A>> 【数学】【模拟】
- HDU3507(dp + 斜率优化dp)
- C++之内存的申请和释放
- 【Linux】ubuntu中怪异的vi编辑器
- (转)blackrock的阿拉丁系统与风险管理