guestrendering/guestopengles11/inc/opengl.h
author Faisal Memon <faisal.memon@nokia.com>
Wed, 08 Sep 2010 17:36:16 +0100
branchbug235_bringup_0
changeset 16 1b3a923fcf07
child 24 a3f46bb01be2
permissions -rwxr-xr-x
Add guestopengles11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     2
// All rights reserved.
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     7
//
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     8
// Initial Contributors:
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    10
//
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    11
// Contributors:
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    12
//
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    13
// Description:
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    14
// Header file for the Guest OpenGL ES 1.1 serialization stubs
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    15
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    16
#ifndef __GUESTOPENGLES11_OPENGL_H__
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    17
#define __GUESTOPENGLES11_OPENGL_H__
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    18
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    19
#include <e32debug.h>
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    20
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    21
// set trace level here
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    22
#ifndef _OPENGL_TRACE_LEVEL_
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    23
#define _OPENGL_TRACE_LEVEL_ ( _APICALL_ )
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    24
#endif
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    25
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    26
// trace levels (in udeb mode)
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    27
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    28
#define _NONE_      0x0000      // no traces in udeb mode
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    29
#define _GEN_       (1 << 0)    // general traces (default)
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    30
#define _APICALL_   (1 << 1)    // API call traces (function entry and exit)
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    31
#define _DETAIL_    (1 << 2)    // detailed traces
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    32
#define _ALL_       0xFFFF
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    33
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    34
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    35
#ifdef _DEBUG
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    36
    #define OPENGL_TRACE(level, fmt, args...)   \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    37
    {                                           \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    38
        if(level & _OPENGL_TRACE_LEVEL_)        \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    39
        {                                       \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    40
            RDebug::Printf(fmt, ##args);        \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    41
        }                                       \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    42
    }
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    43
	#define GLPANIC_ASSERT(condition, panic) if (!(condition)) { GlesPanic(panic, #condition, __FILE__, __LINE__); }
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    44
	#define GLPANIC_ASSERT_DEBUG(condition, panic) if (!(condition)) { GlesPanic(panic, #condition, __FILE__, __LINE__); }
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    45
#else
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    46
    #define OPENGL_TRACE(level, fmt, args...)
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    47
	#define GLPANIC_ASSERT(condition, panic) if (!(condition)) { GlesPanic(panic, NULL, NULL, __LINE__); }
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    48
	#define GLPANIC_ASSERT_DEBUG(condition, panic)
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    49
#endif
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    50
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    51
// Guest Open VG panic codes
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    52
typedef enum
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    53
	{
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    54
	EGlPanicNotReplyOpcode = 1,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    55
	} TGlPanic;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    56
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    57
void GlesPanic(TGlPanic aPanicCode, char* aCondition, char* aFile, TInt aLine);
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    58
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    59
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    60
/* String constants */
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    61
#define OGL_VENDOR_STRING        "Nokia"
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    62
#define OGL_RENDERER_STRING      "1.1.0"
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    63
#define OGL_VERSION_STRING       "OpenGL ES-CM 1.1"
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    64
#define OGL_EXTENSION_STRING     "GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision "               \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    65
                                 "GL_OES_read_format GL_OES_query_matrix GL_OES_compressed_paletted_texture "        \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    66
                                 "GL_OES_matrix_palette GL_OES_point_sprite GL_OES_point_size_array "                \
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    67
                                 "GL_OES_draw_texture GL_OES_matrix_get GL_OES_swap_control GL_OES_render_texture"
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    68
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    69
static const char* const g_strings[] =
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    70
{
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    71
    OGL_VENDOR_STRING,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    72
    OGL_RENDERER_STRING,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    73
    OGL_VERSION_STRING,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    74
    OGL_EXTENSION_STRING
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    75
};
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    76
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    77
/* vertex array pointers */
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    78
enum
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    79
{
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    80
    COLOR_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    81
    NORMAL_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    82
    POINT_SIZE_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    83
    TEX_COORD_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    84
    VERTEX_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    85
    MATRIX_INDEX_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    86
    WEIGHT_ARRAY,
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    87
    NUM_ARRAYS
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    88
};
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    89
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    90
typedef struct
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    91
{
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    92
    GLint size;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    93
    GLenum type;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    94
    GLsizei stride;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    95
    const GLvoid *pointer;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    96
} vertexArrayInfo;
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    97
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    98
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
    99
NONSHARABLE_CLASS(TGles11ApiForEgl) : public MGles11ApiForEgl
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   100
	{
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   101
public:
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   102
	TGles11ApiForEgl(); // constructor used to publish the MGles11ApiForEgl vtable
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   103
	~TGles11ApiForEgl(); // destructor used to unpublish the MGles11ApiForEgl vtable
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   104
	virtual ExtensionProcPointer guestGetGles11ProcAddress (const char *aProcName);
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   105
	};
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   106
1b3a923fcf07 Add guestopengles11
Faisal Memon <faisal.memon@nokia.com>
parents:
diff changeset
   107
#endif // __GUESTOPENGLES11_OPENGL_H__