9973|13

87

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

PC下的OpenGL跟WINCE下的OpenGL是不是区别很大?整个OpenGL框架是怎么样的?谁封装谁? [复制链接]

PC下的OpenGL跟WINCE下的OpenGL是不是区别很大?整个OpenGL框架是怎么样的?谁封装谁?
此帖出自WindowsCE论坛

最新回复

原来OPENGL  ES在WINCE50下也是可以跑起来的.只要对应的DLL+LIB对了. 下面的资料就是用EVC++4.0写的OPENGL ES方面的程序 基于WinCE的OpenGL ES教程 [url=http://download.eeworld.net/source/1541085 ][/url] 基于WinCE的OpenGL ES教程(有两个教程,一个是E文版的,开发环境是EVC4.0;另一个教程是网页版的,开发环境是VS2005的) 绝对有料!   详情 回复 发表于 2009-12-5 16:45
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在三星提供的OPENGL的egl.h头文件里面看到了egl_xxx系列函数


在C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\wingdi.h文件里面看到了wgl_xxx系列函数


在C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl\GLAux.h文件里面看到了aux_xxx系列函数


在C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl\glut.h文件里面看到了glut_xxx系列函数




还有的就是gl_xxx那些系列函数了。在WINCE下和PC下都看到了。gl_xxx系列函数是不是最基本的函数而上面的系列接口只是一个
跟平台相关的封装目的只是为了跨平台。
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
三星提供的egl.h内容部分


  1. /* EGL Functions */
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif

  5. EGLint     eglGetError( void );

  6. EGLDisplay eglGetDisplay(NativeDisplayType display);
  7. EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
  8. EGLBoolean eglTerminate(EGLDisplay dpy);

  9. const char *eglQueryString(EGLDisplay dpy, EGLint name);

  10. EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
  11.                          EGLint config_size, EGLint *num_config);
  12. EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
  13.                            EGLConfig *configs, EGLint config_size,
  14.                            EGLint *num_config);
  15. EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
  16.                               EGLint attribute, EGLint *value);

  17. EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
  18.                                   NativeWindowType win,
  19.                                   const EGLint *attrib_list);
  20. EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
  21.                                    const EGLint *attrib_list);
  22. EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
  23.                                   NativePixmapType pixmap,
  24.                                   const EGLint *attrib_list);
  25. EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
  26. EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
  27.                            EGLint attribute, EGLint *value);

  28. EGLBoolean eglBindAPI(EGLenum api);
  29. EGLenum    eglQueryAPI(void);

  30. EGLBoolean eglWaitClient(void);

  31. EGLBoolean eglReleaseThread(void);

  32. EGLSurface eglCreatePbufferFromClientBuffer(
  33.                                         EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
  34.                                         EGLConfig config, const EGLint *attrib_list);

  35. EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
  36.                             EGLint attribute, EGLint value);
  37. EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
  38. EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);

  39. EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval);

  40. EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config,
  41.                             EGLContext share_context,
  42.                             const EGLint *attrib_list);
  43. EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
  44. EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
  45.                           EGLSurface read, EGLContext ctx);

  46. EGLContext eglGetCurrentContext(void);
  47. EGLSurface eglGetCurrentSurface(EGLint readdraw);
  48. EGLDisplay eglGetCurrentDisplay(void);
  49. EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx,
  50.                            EGLint attribute, EGLint *value);

  51. EGLBoolean eglWaitGL(void);
  52. EGLBoolean eglWaitNative(EGLint engine);
  53. EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
  54. EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
  55.                           NativePixmapType target);

  56. void       (*eglGetProcAddress(const char *procname))(void);

  57. #ifdef __cplusplus
  58. } /* extern "C" */
  59. #endif

复制代码
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 
define in wingdi.h



  1. // OpenGL wgl prototypes

  2. WINGDIAPI BOOL  WINAPI wglCopyContext(HGLRC, HGLRC, UINT);
  3. WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
  4. WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC, int);
  5. WINGDIAPI BOOL  WINAPI wglDeleteContext(HGLRC);
  6. WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID);
  7. WINGDIAPI HDC   WINAPI wglGetCurrentDC(VOID);
  8. WINGDIAPI PROC  WINAPI wglGetProcAddress(LPCSTR);
  9. WINGDIAPI BOOL  WINAPI wglMakeCurrent(HDC, HGLRC);
  10. WINGDIAPI BOOL  WINAPI wglShareLists(HGLRC, HGLRC);
  11. WINGDIAPI BOOL  WINAPI wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
  12. WINGDIAPI BOOL  WINAPI wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
  13. #ifdef UNICODE
  14. #define wglUseFontBitmaps  wglUseFontBitmapsW
  15. #else
  16. #define wglUseFontBitmaps  wglUseFontBitmapsA
  17. #endif // !UNICODE

  18. WINGDIAPI BOOL  WINAPI SwapBuffers(HDC);

  19. typedef struct _POINTFLOAT {
  20.     FLOAT   x;
  21.     FLOAT   y;
  22. } POINTFLOAT, *PPOINTFLOAT;

  23. typedef struct _GLYPHMETRICSFLOAT {
  24.     FLOAT       gmfBlackBoxX;
  25.     FLOAT       gmfBlackBoxY;
  26.     POINTFLOAT  gmfptGlyphOrigin;
  27.     FLOAT       gmfCellIncX;
  28.     FLOAT       gmfCellIncY;
  29. } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, FAR *LPGLYPHMETRICSFLOAT;

  30. #define WGL_FONT_LINES      0
  31. #define WGL_FONT_POLYGONS   1
  32. WINGDIAPI BOOL  WINAPI wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
  33.                                            FLOAT, int, LPGLYPHMETRICSFLOAT);
  34. WINGDIAPI BOOL  WINAPI wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
  35.                                            FLOAT, int, LPGLYPHMETRICSFLOAT);
  36. #ifdef UNICODE
  37. #define wglUseFontOutlines  wglUseFontOutlinesW
  38. #else
  39. #define wglUseFontOutlines  wglUseFontOutlinesA
  40. #endif // !UNICODE

  41. /* Layer plane descriptor */
  42. typedef struct tagLAYERPLANEDESCRIPTOR { // lpd
  43.     WORD  nSize;
  44.     WORD  nVersion;
  45.     DWORD dwFlags;
  46.     BYTE  iPixelType;
  47.     BYTE  cColorBits;
  48.     BYTE  cRedBits;
  49.     BYTE  cRedShift;
  50.     BYTE  cGreenBits;
  51.     BYTE  cGreenShift;
  52.     BYTE  cBlueBits;
  53.     BYTE  cBlueShift;
  54.     BYTE  cAlphaBits;
  55.     BYTE  cAlphaShift;
  56.     BYTE  cAccumBits;
  57.     BYTE  cAccumRedBits;
  58.     BYTE  cAccumGreenBits;
  59.     BYTE  cAccumBlueBits;
  60.     BYTE  cAccumAlphaBits;
  61.     BYTE  cDepthBits;
  62.     BYTE  cStencilBits;
  63.     BYTE  cAuxBuffers;
  64.     BYTE  iLayerPlane;
  65.     BYTE  bReserved;
  66.     COLORREF crTransparent;
  67. } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, FAR *LPLAYERPLANEDESCRIPTOR;

  68. /* LAYERPLANEDESCRIPTOR flags */
  69. #define LPD_DOUBLEBUFFER        0x00000001
  70. #define LPD_STEREO              0x00000002
  71. #define LPD_SUPPORT_GDI         0x00000010
  72. #define LPD_SUPPORT_OPENGL      0x00000020
  73. #define LPD_SHARE_DEPTH         0x00000040
  74. #define LPD_SHARE_STENCIL       0x00000080
  75. #define LPD_SHARE_ACCUM         0x00000100
  76. #define LPD_SWAP_EXCHANGE       0x00000200
  77. #define LPD_SWAP_COPY           0x00000400
  78. #define LPD_TRANSPARENT         0x00001000

  79. #define LPD_TYPE_RGBA        0
  80. #define LPD_TYPE_COLORINDEX  1

  81. /* wglSwapLayerBuffers flags */
  82. #define WGL_SWAP_MAIN_PLANE     0x00000001
  83. #define WGL_SWAP_OVERLAY1       0x00000002
  84. #define WGL_SWAP_OVERLAY2       0x00000004
  85. #define WGL_SWAP_OVERLAY3       0x00000008
  86. #define WGL_SWAP_OVERLAY4       0x00000010
  87. #define WGL_SWAP_OVERLAY5       0x00000020
  88. #define WGL_SWAP_OVERLAY6       0x00000040
  89. #define WGL_SWAP_OVERLAY7       0x00000080
  90. #define WGL_SWAP_OVERLAY8       0x00000100
  91. #define WGL_SWAP_OVERLAY9       0x00000200
  92. #define WGL_SWAP_OVERLAY10      0x00000400
  93. #define WGL_SWAP_OVERLAY11      0x00000800
  94. #define WGL_SWAP_OVERLAY12      0x00001000
  95. #define WGL_SWAP_OVERLAY13      0x00002000
  96. #define WGL_SWAP_OVERLAY14      0x00004000
  97. #define WGL_SWAP_OVERLAY15      0x00008000
  98. #define WGL_SWAP_UNDERLAY1      0x00010000
  99. #define WGL_SWAP_UNDERLAY2      0x00020000
  100. #define WGL_SWAP_UNDERLAY3      0x00040000
  101. #define WGL_SWAP_UNDERLAY4      0x00080000
  102. #define WGL_SWAP_UNDERLAY5      0x00100000
  103. #define WGL_SWAP_UNDERLAY6      0x00200000
  104. #define WGL_SWAP_UNDERLAY7      0x00400000
  105. #define WGL_SWAP_UNDERLAY8      0x00800000
  106. #define WGL_SWAP_UNDERLAY9      0x01000000
  107. #define WGL_SWAP_UNDERLAY10     0x02000000
  108. #define WGL_SWAP_UNDERLAY11     0x04000000
  109. #define WGL_SWAP_UNDERLAY12     0x08000000
  110. #define WGL_SWAP_UNDERLAY13     0x10000000
  111. #define WGL_SWAP_UNDERLAY14     0x20000000
  112. #define WGL_SWAP_UNDERLAY15     0x40000000

  113. WINGDIAPI BOOL  WINAPI wglDescribeLayerPlane(HDC, int, int, UINT,
  114.                                              LPLAYERPLANEDESCRIPTOR);
  115. WINGDIAPI int   WINAPI wglSetLayerPaletteEntries(HDC, int, int, int,
  116.                                                  CONST COLORREF *);
  117. WINGDIAPI int   WINAPI wglGetLayerPaletteEntries(HDC, int, int, int,
  118.                                                  COLORREF *);
  119. WINGDIAPI BOOL  WINAPI wglRealizeLayerPalette(HDC, int, BOOL);
  120. WINGDIAPI BOOL  WINAPI wglSwapLayerBuffers(HDC, UINT);

  121. #if (WINVER >= 0x0500)

  122. typedef struct _WGLSWAP
  123. {
  124.     HDC hdc;
  125.     UINT uiFlags;
  126. } WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;

  127. #define WGL_SWAPMULTIPLE_MAX 16

  128. WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);

  129. #endif // (WINVER >= 0x0500)

  130. #endif /* NOGDI */


复制代码
此帖出自WindowsCE论坛
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

5
 
define in glaux.h



  1. /*
  2. ** Prototypes
  3. */

  4. void APIENTRY auxInitDisplayMode(GLenum);
  5. void APIENTRY auxInitPosition(int, int, int, int);

  6. /* GLenum APIENTRY auxInitWindow(LPCTSTR); */
  7. #ifdef UNICODE
  8. #define auxInitWindow auxInitWindowW
  9. #else
  10. #define auxInitWindow auxInitWindowA
  11. #endif
  12. GLenum APIENTRY auxInitWindowA(LPCSTR);
  13. GLenum APIENTRY auxInitWindowW(LPCWSTR);

  14. void APIENTRY auxCloseWindow(void);
  15. void APIENTRY auxQuit(void);
  16. void APIENTRY auxSwapBuffers(void);

  17. typedef void (CALLBACK* AUXMAINPROC)(void);
  18. void APIENTRY auxMainLoop(AUXMAINPROC);

  19. typedef void (CALLBACK* AUXEXPOSEPROC)(int, int);
  20. void APIENTRY auxExposeFunc(AUXEXPOSEPROC);

  21. typedef void (CALLBACK* AUXRESHAPEPROC)(GLsizei, GLsizei);
  22. void APIENTRY auxReshapeFunc(AUXRESHAPEPROC);

  23. typedef void (CALLBACK* AUXIDLEPROC)(void);
  24. void APIENTRY auxIdleFunc(AUXIDLEPROC);

  25. typedef void (CALLBACK* AUXKEYPROC)(void);
  26. void APIENTRY auxKeyFunc(int, AUXKEYPROC);

  27. typedef void (CALLBACK* AUXMOUSEPROC)(AUX_EVENTREC *);
  28. void APIENTRY auxMouseFunc(int, int, AUXMOUSEPROC);

  29. int  APIENTRY auxGetColorMapSize(void);
  30. void APIENTRY auxGetMouseLoc(int *, int *);
  31. void APIENTRY auxSetOneColor(int, float, float, float);
  32. void APIENTRY auxSetFogRamp(int, int);
  33. void APIENTRY auxSetGreyRamp(void);
  34. void APIENTRY auxSetRGBMap(int, float *);

  35. /* AUX_RGBImageRec * APIENTRY auxRGBImageLoad(LPCTSTR); */
  36. #ifdef UNICODE
  37. #define auxRGBImageLoad auxRGBImageLoadW
  38. #else
  39. #define auxRGBImageLoad auxRGBImageLoadA
  40. #endif
  41. AUX_RGBImageRec * APIENTRY auxRGBImageLoadA(LPCSTR);
  42. AUX_RGBImageRec * APIENTRY auxRGBImageLoadW(LPCWSTR);

  43. #ifdef UNICODE
  44. #define auxDIBImageLoad auxDIBImageLoadW
  45. #else
  46. #define auxDIBImageLoad auxDIBImageLoadA
  47. #endif
  48. AUX_RGBImageRec * APIENTRY auxDIBImageLoadA(LPCSTR);
  49. AUX_RGBImageRec * APIENTRY auxDIBImageLoadW(LPCWSTR);

  50. void APIENTRY auxCreateFont(void);
  51. /* void APIENTRY auxDrawStr(LPCTSTR); */
  52. #ifdef UNICODE
  53. #define auxDrawStr auxDrawStrW
  54. #else
  55. #define auxDrawStr auxDrawStrA
  56. #endif
  57. void APIENTRY auxDrawStrA(LPCSTR);
  58. void APIENTRY auxDrawStrW(LPCWSTR);

  59. void APIENTRY auxWireSphere(GLdouble);
  60. void APIENTRY auxSolidSphere(GLdouble);
  61. void APIENTRY auxWireCube(GLdouble);
  62. void APIENTRY auxSolidCube(GLdouble);
  63. void APIENTRY auxWireBox(GLdouble, GLdouble, GLdouble);
  64. void APIENTRY auxSolidBox(GLdouble, GLdouble, GLdouble);
  65. void APIENTRY auxWireTorus(GLdouble, GLdouble);
  66. void APIENTRY auxSolidTorus(GLdouble, GLdouble);
  67. void APIENTRY auxWireCylinder(GLdouble, GLdouble);
  68. void APIENTRY auxSolidCylinder(GLdouble, GLdouble);
  69. void APIENTRY auxWireIcosahedron(GLdouble);
  70. void APIENTRY auxSolidIcosahedron(GLdouble);
  71. void APIENTRY auxWireOctahedron(GLdouble);
  72. void APIENTRY auxSolidOctahedron(GLdouble);
  73. void APIENTRY auxWireTetrahedron(GLdouble);
  74. void APIENTRY auxSolidTetrahedron(GLdouble);
  75. void APIENTRY auxWireDodecahedron(GLdouble);
  76. void APIENTRY auxSolidDodecahedron(GLdouble);
  77. void APIENTRY auxWireCone(GLdouble, GLdouble);
  78. void APIENTRY auxSolidCone(GLdouble, GLdouble);
  79. void APIENTRY auxWireTeapot(GLdouble);
  80. void APIENTRY auxSolidTeapot(GLdouble);

  81. /*
  82. ** Window specific functions
  83. ** hwnd, hdc, and hglrc valid after auxInitWindow()
  84. */
  85. HWND  APIENTRY auxGetHWND(void);
  86. HDC   APIENTRY auxGetHDC(void);
  87. HGLRC APIENTRY auxGetHGLRC(void);

  88. /*
  89. ** Viewperf support functions and constants
  90. */
  91. /* Display Mode Selection Criteria */
  92. enum {
  93.     AUX_USE_ID = 1,
  94.     AUX_EXACT_MATCH,
  95.     AUX_MINIMUM_CRITERIA
  96. };
  97. void   APIENTRY auxInitDisplayModePolicy(GLenum);
  98. GLenum APIENTRY auxInitDisplayModeID(GLint);
  99. GLenum APIENTRY auxGetDisplayModePolicy(void);
  100. GLint  APIENTRY auxGetDisplayModeID(void);
  101. GLenum APIENTRY auxGetDisplayMode(void);

复制代码
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
define in glut.h


  1. /* GLUT initialization sub-API. */
  2. extern void APIENTRY glutInit(int *argcp, char **argv);
  3. extern void APIENTRY glutInitDisplayMode(unsigned int mode);
  4. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  5. extern void APIENTRY glutInitDisplayString(const char *string);
  6. #endif
  7. extern void APIENTRY glutInitWindowPosition(int x, int y);
  8. extern void APIENTRY glutInitWindowSize(int width, int height);
  9. extern void APIENTRY glutMainLoop(void);

  10. /* GLUT window sub-API. */
  11. extern int APIENTRY glutCreateWindow(const char *title);
  12. extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
  13. extern void APIENTRY glutDestroyWindow(int win);
  14. extern void APIENTRY glutPostRedisplay(void);
  15. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
  16. extern void APIENTRY glutPostWindowRedisplay(int win);
  17. #endif
  18. extern void APIENTRY glutSwapBuffers(void);
  19. extern int APIENTRY glutGetWindow(void);
  20. extern void APIENTRY glutSetWindow(int win);
  21. extern void APIENTRY glutSetWindowTitle(const char *title);
  22. extern void APIENTRY glutSetIconTitle(const char *title);
  23. extern void APIENTRY glutPositionWindow(int x, int y);
  24. extern void APIENTRY glutReshapeWindow(int width, int height);
  25. extern void APIENTRY glutPopWindow(void);
  26. extern void APIENTRY glutPushWindow(void);
  27. extern void APIENTRY glutIconifyWindow(void);
  28. extern void APIENTRY glutShowWindow(void);
  29. extern void APIENTRY glutHideWindow(void);
  30. #if (GLUT_API_VERSION >= 3)
  31. extern void APIENTRY glutFullScreen(void);
  32. extern void APIENTRY glutSetCursor(int cursor);
  33. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  34. extern void APIENTRY glutWarpPointer(int x, int y);
  35. #endif

  36. /* GLUT overlay sub-API. */
  37. extern void APIENTRY glutEstablishOverlay(void);
  38. extern void APIENTRY glutRemoveOverlay(void);
  39. extern void APIENTRY glutUseLayer(GLenum layer);
  40. extern void APIENTRY glutPostOverlayRedisplay(void);
  41. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
  42. extern void APIENTRY glutPostWindowOverlayRedisplay(int win);
  43. #endif
  44. extern void APIENTRY glutShowOverlay(void);
  45. extern void APIENTRY glutHideOverlay(void);
  46. #endif

  47. /* GLUT menu sub-API. */
  48. extern int APIENTRY glutCreateMenu(void (*)(int));
  49. extern void APIENTRY glutDestroyMenu(int menu);
  50. extern int APIENTRY glutGetMenu(void);
  51. extern void APIENTRY glutSetMenu(int menu);
  52. extern void APIENTRY glutAddMenuEntry(const char *label, int value);
  53. extern void APIENTRY glutAddSubMenu(const char *label, int submenu);
  54. extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
  55. extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
  56. extern void APIENTRY glutRemoveMenuItem(int item);
  57. extern void APIENTRY glutAttachMenu(int button);
  58. extern void APIENTRY glutDetachMenu(int button);

  59. /* GLUT window callback sub-API. */
  60. extern void APIENTRY glutDisplayFunc(void (*func)(void));
  61. extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height));
  62. extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
  63. extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y));
  64. extern void APIENTRY glutMotionFunc(void (*func)(int x, int y));
  65. extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y));
  66. extern void APIENTRY glutEntryFunc(void (*func)(int state));
  67. extern void APIENTRY glutVisibilityFunc(void (*func)(int state));
  68. extern void APIENTRY glutIdleFunc(void (*func)(void));
  69. extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
  70. extern void APIENTRY glutMenuStateFunc(void (*func)(int state));
  71. #if (GLUT_API_VERSION >= 2)
  72. extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y));
  73. extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z));
  74. extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z));
  75. extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state));
  76. extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state));
  77. extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value));
  78. extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y));
  79. extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y));
  80. #if (GLUT_API_VERSION >= 3)
  81. extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y));
  82. extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void));
  83. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  84. extern void APIENTRY glutWindowStatusFunc(void (*func)(int state));
  85. #endif
  86. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
  87. extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));
  88. extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y));
  89. extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
  90. #endif
  91. #endif
  92. #endif

  93. /* GLUT color index sub-API. */
  94. extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
  95. extern GLfloat APIENTRY glutGetColor(int ndx, int component);
  96. extern void APIENTRY glutCopyColormap(int win);

  97. /* GLUT state retrieval sub-API. */
  98. extern int APIENTRY glutGet(GLenum type);
  99. extern int APIENTRY glutDeviceGet(GLenum type);
  100. #if (GLUT_API_VERSION >= 2)
  101. /* GLUT extension support sub-API */
  102. extern int APIENTRY glutExtensionSupported(const char *name);
  103. #endif
  104. #if (GLUT_API_VERSION >= 3)
  105. extern int APIENTRY glutGetModifiers(void);
  106. extern int APIENTRY glutLayerGet(GLenum type);
  107. #endif

  108. /* GLUT font sub-API */
  109. extern void APIENTRY glutBitmapCharacter(void *font, int character);
  110. extern int APIENTRY glutBitmapWidth(void *font, int character);
  111. extern void APIENTRY glutStrokeCharacter(void *font, int character);
  112. extern int APIENTRY glutStrokeWidth(void *font, int character);
  113. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  114. extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
  115. extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
  116. #endif

  117. /* GLUT pre-built models sub-API */
  118. extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
  119. extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
  120. extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
  121. extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
  122. extern void APIENTRY glutWireCube(GLdouble size);
  123. extern void APIENTRY glutSolidCube(GLdouble size);
  124. extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
  125. extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
  126. extern void APIENTRY glutWireDodecahedron(void);
  127. extern void APIENTRY glutSolidDodecahedron(void);
  128. extern void APIENTRY glutWireTeapot(GLdouble size);
  129. extern void APIENTRY glutSolidTeapot(GLdouble size);
  130. extern void APIENTRY glutWireOctahedron(void);
  131. extern void APIENTRY glutSolidOctahedron(void);
  132. extern void APIENTRY glutWireTetrahedron(void);
  133. extern void APIENTRY glutSolidTetrahedron(void);
  134. extern void APIENTRY glutWireIcosahedron(void);
  135. extern void APIENTRY glutSolidIcosahedron(void);

  136. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
  137. /* GLUT video resize sub-API. */
  138. extern int APIENTRY glutVideoResizeGet(GLenum param);
  139. extern void APIENTRY glutSetupVideoResizing(void);
  140. extern void APIENTRY glutStopVideoResizing(void);
  141. extern void APIENTRY glutVideoResize(int x, int y, int width, int height);
  142. extern void APIENTRY glutVideoPan(int x, int y, int width, int height);

  143. /* GLUT debugging sub-API. */
  144. extern void APIENTRY glutReportErrors(void);
  145. #endif

  146. #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
  147. /* GLUT device control sub-API. */
  148. /* glutSetKeyRepeat modes. */
  149. #define GLUT_KEY_REPEAT_OFF                0
  150. #define GLUT_KEY_REPEAT_ON                1
  151. #define GLUT_KEY_REPEAT_DEFAULT                2

  152. /* Joystick button masks. */
  153. #define GLUT_JOYSTICK_BUTTON_A                1
  154. #define GLUT_JOYSTICK_BUTTON_B                2
  155. #define GLUT_JOYSTICK_BUTTON_C                4
  156. #define GLUT_JOYSTICK_BUTTON_D                8

  157. extern void APIENTRY glutIgnoreKeyRepeat(int ignore);
  158. extern void APIENTRY glutSetKeyRepeat(int repeatMode);
  159. extern void APIENTRY glutForceJoystickFunc(void);

  160. /* GLUT game mode sub-API. */
  161. /* glutGameModeGet. */
  162. #define GLUT_GAME_MODE_ACTIVE           0
  163. #define GLUT_GAME_MODE_POSSIBLE         1
  164. #define GLUT_GAME_MODE_WIDTH            2
  165. #define GLUT_GAME_MODE_HEIGHT           3
  166. #define GLUT_GAME_MODE_PIXEL_DEPTH      4
  167. #define GLUT_GAME_MODE_REFRESH_RATE     5
  168. #define GLUT_GAME_MODE_DISPLAY_CHANGED  6

  169. extern void APIENTRY glutGameModeString(const char *string);
  170. extern int APIENTRY glutEnterGameMode(void);
  171. extern void APIENTRY glutLeaveGameMode(void);
  172. extern int APIENTRY glutGameModeGet(GLenum mode);

复制代码
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
在PC环境下VS2005 IDE下建立工程----------//glut库!!!


     //1111-----H头文件-----gl.h++++glu.h++++glaux.h
     
     //2222-----LIB库文件----glu32.lib++++glaux.lib++++OpenGL32.Lib
     
     
     glu32.lib  glaux.lib  OpenGL32.Lib
     
     
     //3333-----dll库文件----glmf32.dll++++glu32.dll++++opengl32.dll
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。

OpenGL ES 是从 OpenGL 裁剪定制而来的,去除了 glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要的特性。经过多年发展,现在主要有两个版本,OpenGL ES 1.x 针对固定管线硬件的,OpenGL ES 2.x 针对可编程管线硬件。OpenGL ES 1.0 是以 OpenGL 1.3 规范为基础的,OpenGL ES 1.1 是以 OpenGL 1.5 规范为基础的,它们分别又支持 common 和 common lite 两种profile。lite profile只支持定点定点实数,而common profile既支持定点数又支持浮点数。 OpenGL ES 2.0 则是参照 OpenGL 2.0 规范定义的,common profile发布于2005-8,引入了对可编程管线的支持。

OpenGL ES 还有一个safety-critical profile。

此帖出自WindowsCE论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

9
 
关于OPENGL与OPENGL ES的区别

数据类型:

1: i   GLint    整数型
2: f   GLfixed  定点小数
3: x   GLclampx 限定型定点小数

删除的功能:

1.glBegin/glEnd
2.glArrayElement
3.显示列表
4.求值器
5.索引色模式
6.自定义裁剪平面
7.glRect
8.图像处理(这个一般显卡也没有,FireGL/Quadro显卡有)
9.反馈缓冲
10.选择缓冲
11.累积缓冲
12.边界标志
13.glPolygonMode
14.GL_QUADS,GL_QUAD_STRIP,GL_POLYGON
15.glPushAttrib,glPopAttrib,glPushClientAttrib,glPopClientAttrib
15.TEXTURE_1D、TEXTURE_3D、TEXTURE_RECT、TEXTURE_CUBE_MAP
16.GL_COMBINE
17.自动纹理坐标生成
18.纹理边界
19.GL_CLAMP、GL_CLAMP_TO_BORDER
20.消失纹理代表
21.纹理LOD限定
22.纹理偏好限定
23.纹理自动压缩、解压缩
24.glDrawPixels,glPixelTransfer,glPixelZoom
25.glReadBuffer,glDrawBuffer,glCopyPixels

其它注意事项:

1.glDrawArrays等函数中数据必须紧密排列,即间隔为0
2.各种数据的堆栈深度较低


此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
学习学习在学习,不懂的太多了~~~~~
Mark!
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
你自己都找得差不多了
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

12
 
第三章 Windows NT环境下的OpenGL


3.1 Windows NT下的OpenGL函数


如前面所述,Windows NT下的OpenGL同样包含100多个库函数,这些函数都按一定的

格式来命名,即每个函数都以gl开头。Windows NT下的OpenGL除了具有基本的OpenGL函

数外,还支持其他四类函数:

   (1) OpenGL实用库:43个函数,每个函数以glu开头;

   (2) OpenGL辅助库:31个函数,每个函数以aux开头;

   (3) Windows专用库函数(WGL):6个函数,每个函数以wgl开头;

   (4) Win32 API函数:5个函数,函数前面没有专用前缀;

   在OpenGL中有115个核心函数,这些函数是最基本的,它们可以在任何OpenGL的工作平

台上应用。这些函数用于建立各种各样的形体,产生光照效果,进行反走样以及进行纹理映射,

进行投影变换等等。由于这些核心函数有许多种形式并能够接受不同类型的参数,实际上这

些函数可以派生出300多个函数。

   OpenGL的实用函数是比OpenGL核心函数更高一层的函数,这些函数是通过调用核心函数

来起作用的。这些函数提供了十分简单的用法,从而减轻了开发者的编程负担。OpenGL的实

用函数包括纹理映射、坐标变换、多边形分化、绘制一些如椭球、圆柱、茶壶等简单多边形

实体(本书将详细讲述这些函数的具体用法)等。这部分函数象核心函数一样在任何OpenGL

平台都可以应用。

OpenGL的辅助库是一些特殊的函数,这些函数本来是用于初学者做简单的练习之用,因

此这些函数不能在所有的OpenGL平台上使用,在Windows NT环境下可以使用这些函数。这

些函数使用简单,它们可以用于窗口管理、输入输出处理以及绘制一些简单的三维形体。为

了使OpenGL的应用程序具有良好的移植性,在使用OpenGL辅助库的时候应谨慎。

   6个WGL函数是用于连接OpenGL和WindowsNT,这些函数用于在WindowsNT环境下的

OpenGL窗口能够进行渲染着色,在窗口内绘制位图字体以及把文本放在窗口的某一位置等。

这些函数把Windows和OpenGL揉合在一起。

   最后的5个Win32函数用于处理象素存储格式和双缓冲区,显然这些函数仅仅能够用于

Win32系统而不能用于其他OpenGL平台。

此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
顶起来一下
此帖出自WindowsCE论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

14
 
原来OPENGL  ES在WINCE50下也是可以跑起来的.只要对应的DLL+LIB对了.

下面的资料就是用EVC++4.0写的OPENGL ES方面的程序

基于WinCE的OpenGL ES教程
[url=http://download.eeworld.net/source/1541085 ][/url]

基于WinCE的OpenGL ES教程(有两个教程,一个是E文版的,开发环境是EVC4.0;另一个教程是网页版的,开发环境是VS2005的)

绝对有料!



此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表