m3g/m3gcore11/inc/m3g_gl.h
changeset 0 5d03bc08d59c
child 11 fed1595b188e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m3g/m3gcore11/inc/m3g_gl.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: OpenGL utility functions and definitions
+*
+*/
+
+#ifndef __M3G_GL_H__
+#define __M3G_GL_H__
+
+/*!
+ * \internal
+ * \file
+ * \brief OpenGL utility functions and definitions
+ */
+
+#include "M3G/m3g_core.h"
+#include "m3g_defs.h"
+
+#if !(defined(M3G_NGL_CONTEXT_API) || defined(M3G_NGL_TEXTURE_API))
+#   include <GLES/gl.h>
+#   include <GLES/egl.h>
+#else
+
+/*@notfunction@*/
+#   define NGL_PREFIX(func)     gl ## func
+/*@notfunction@*/
+#   define NGLI_PREFIX(func)    ngl ## func
+/*@notfunction@*/
+#   define NGLU_PREFIX(func)    nglu ## func
+#   include "ngl.h"
+
+#endif
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+    
+/*----------------------------------------------------------------------
+ * Handy macros
+ *--------------------------------------------------------------------*/
+
+#if defined(M3G_DEBUG_ASSERTS)
+    static M3G_INLINE void m3gAssertGL(const char *filename, int line)
+    {
+        GLint err = glGetError();
+        if (err != GL_NO_ERROR) {
+            M3G_LOG3(M3G_LOG_FATAL_ERRORS, "GL error 0x%X (%s: %d)\n",
+                     err, filename, line);
+            M3G_ASSERT(M3G_FALSE);
+        }
+    }
+#   define M3G_ASSERT_GL m3gAssertGL(__FILE__, __LINE__)
+#else
+#   define M3G_ASSERT_GL
+#endif
+
+#define M3G_GLTYPE(m3gType) ((m3gType) + 0x1400)
+#define M3G_M3GTYPE(glType) ((glType) - 0x1400)
+
+/*----------------------------------------------------------------------
+ * Internal functions
+ *--------------------------------------------------------------------*/
+    
+static GLenum m3gGetGLFormat(M3GPixelFormat format);    /* m3g_image.inl */
+static void m3gGLColor(M3Guint argb, GLfixed *dst);     /* m3g_image.c */
+
+#if !defined(M3G_NGL_CONTEXT_API)
+static void m3gInitializeEGL(void);     /* m3g_rendercontext.inl */
+static void m3gTerminateEGL(void);      /* m3g_rendercontext.inl */
+#endif
+
+/*----------------------------------------------------------------------
+ * Native platform abstraction layer
+ *--------------------------------------------------------------------*/
+    
+#if !defined(M3G_NGL_CONTEXT_API)
+    
+M3Gbool m3gglLockNativeBitmap(M3GNativeBitmap bitmap,
+                              M3Gubyte **ptr,
+                              M3Gsizei *stride);
+void    m3gglReleaseNativeBitmap(M3GNativeBitmap bitmap);
+    
+M3Gbool m3gglGetNativeBitmapParams(M3GNativeBitmap bitmap,
+                                   M3GPixelFormat *format,
+                                   M3Gint *width, M3Gint *height);
+M3Gbool m3gglGetNativeWindowParams(M3GNativeWindow wnd,
+                                   M3GPixelFormat *format,
+                                   M3Gint *width, M3Gint *height);
+    
+#endif /* M3G_NGL_CONTEXT_API */
+    
+#if defined(__cplusplus)
+} /* extern "C" */
+#endif
+
+#endif /*__M3G_GL_H__*/