欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

小弟使用opengl es2.0在wince下画一个三角,但结果出来的只有空白的窗口,其它什么都没有。请高手帮忙看下,不甚感激!

更新时间: 2014-01-05 03:10:24 责任编辑: Author_N1

 

小弟使用OpenGL ES2.0在WinCE下画一个三角形,但结果出来的只有空白的窗口,其它什么都没有。请高手帮忙看下,不甚感激!!!!
小弟使用OpenGL ES2.0在WinCE下画一个三角形,但结果出来的只有空白的窗口,其它什么都没有。请高手帮忙看下,小弟不甚感激!!!!
以下是代码:
// Subproject1.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"

#include <windows.h>
#include <commctrl.h>

#include <stdlib.h>
#include "esUtil.h"
#include "esUtil_win.h"

#include <stdio.h>

#include <EGL/egl.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>

#include <auirt.h>
#include <auirt_i.c>

#define CLASSNAME L"OpenGL ES2.0"
#define APPLICATIONNAME L"OpenGL ES2.0"
#define MAX_LOADSTRING 100


// Global Variables:
TCHAR szTitle[MAX_LOADSTRING];
TCHAR szWindowClass[MAX_LOADSTRING];
HINSTANCE g_hInst = NULL;
ESContext g_esContext = {0};

typedef struct
{
   // Handle to a program object
   GLuint programObject;

} UserData;



int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR     lpCmdLine,
                     int       nCmdShow)
{
MSG msg;
BOOL bRet;
int done = 0;
UserData  userData;

g_hInst = hInstance;
esInitContext ();
g_esContext.userData = &userData;


MyRegisterClass(hInstance);


if (!InitInstance (hInstance, nCmdShow)) 
{

return FALSE; 
}
bRet = esCreateWindow ("OpenGL ES2.0", 800, 480, ES_WINDOW_RGB);
if(0 == bRet)
{

return 0;
}

if ( !Init () )
{

return 0;
}

while (!done)
{
 int gotMsg = (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0);
  if ( gotMsg )
  {
 if (msg.message==WM_QUIT)
     {
         done = 1; 
     }
     else
     {
         TranslateMessage(&msg); 
         DispatchMessage(&msg); 
     }
  }
  else
  {
SendMessage( g_esContext.hWnd, WM_PAINT, 0, 0 );
  }
}

return msg.wParam;
}


GLuint LoadShader ( GLenum type, const char *shaderSrc )
{
   GLuint shader;
   GLint compiled;
   
   // Create the shader object
   shader = glCreateShader ( type );

   if ( shader == 0 )
   {
RETAILMSG(1, (TEXT("shader = 0\r\n")));
return 0;
   }

   // Load the shader source
   glShaderSource ( shader, 1, &shaderSrc, NULL );
   
   // Compile the shader
   glCompileShader ( shader );

   // Check the compile status
   glGetShaderiv ( shader, GL_COMPILE_STATUS, &compiled );

   if ( !compiled ) 
   {
      glDeleteShader ( shader );
      return 0;
   }
   return shader;

}


int Init ()
{
   UserData *userData = (UserData *)g_esContext.userData;
   GLbyte vShaderStr[] =  
      "attribute vec4 vPosition;    \n"
      "void main()                  \n"
      "{                            \n"
      "   gl_Position = vPosition;  \n"
      "}                            \n";
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:10:24
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19142/
本文WWW.DOC100.NET DOC100.NET版权所有。