小弟使用OpenGL ES2.0在WinCE下画一个三角,但结果出来的只有空白的窗口,其它什么都没有。请高手帮忙看下,不甚感激!
小弟使用OpenGL ES2.0在WinCE下画一个三角形,但结果出来的只有空白的窗口,其它什么都没有。请高手帮忙看下,不甚感激!!!!
小弟使用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";