Expose wrapper C interface for Syborg from KhronosAPIWrapper. Needs update to QEMU!
Make KhronosAPIWrapper buildable using GCC.
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "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:
//
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <GLES/gl.h>
#include "opengles11apiwrapper.h"
#include "serializedfunctioncall.h"
#include "remotefunctioncall.h"
#include "khronosapiwrapperdefs.h"
#include "openvgrfc.h"
OGLES11Wrapper::OGLES11Wrapper(RemoteFunctionCallData& currentFunctionCallData,
APIWrapperStack* stack,
void* result,
MGraphicsVHWCallback* serviceIf):
APIWrapper(currentFunctionCallData, stack, result, serviceIf),
m_currentFunctionCall(m_currentFunctionCallData)
{
}
int OGLES11Wrapper::DispatchRequest(unsigned long aCode)
{
int ret(0);
TRACE("OpenGLES11APIWrapper: OpenGL ES Op command received: %u\n", aCode);
switch ( aCode )
{
case OpenGlES11RFC::EglActiveTexture:
ret = glActiveTexture();
break;
case OpenGlES11RFC::EglAlphaFunc:
ret = glAlphaFunc();
break;
case OpenGlES11RFC::EglAlphaFuncx:
ret = glAlphaFuncx();
break;
case OpenGlES11RFC::EglBindBuffer:
ret = glBindBuffer();
break;
case OpenGlES11RFC::EglBindTexture:
ret = glBindTexture();
break;
case OpenGlES11RFC::EglBlendFunc:
ret = glBlendFunc();
break;
case OpenGlES11RFC::EglBufferData:
ret = glBufferData();
break;
case OpenGlES11RFC::EglBufferSubData:
ret = glBufferSubData();
break;
case OpenGlES11RFC::EglClear:
ret = glClear();
break;
case OpenGlES11RFC::EglClearColor:
ret = glClearColor();
break;
case OpenGlES11RFC::EglClearColorx:
ret = glClearColorx();
break;
case OpenGlES11RFC::EglClearDepthf:
ret = glClearDepthf();
break;
case OpenGlES11RFC::EglClearDepthx:
ret = glClearDepthx();
break;
case OpenGlES11RFC::EglClearStencil:
ret = glClearStencil();
break;
case OpenGlES11RFC::EglClientActiveTexture:
ret = glClientActiveTexture();
break;
case OpenGlES11RFC::EglClipPlanef:
ret = glClipPlanef();
break;
case OpenGlES11RFC::EglClipPlanex:
ret = glClipPlanex();
break;
case OpenGlES11RFC::EglColor4f:
ret = glColor4f();
break;
case OpenGlES11RFC::EglColor4ub:
ret = glColor4ub();
break;
case OpenGlES11RFC::EglColor4x:
ret = glColor4x();
break;
case OpenGlES11RFC::EglColorMask:
ret = glColorMask();
break;
case OpenGlES11RFC::EglCompressedTexImage2D:
ret = glCompressedTexImage2D();
break;
case OpenGlES11RFC::EglCompressedTexSubImage2D:
ret = glCompressedTexSubImage2D();
break;
case OpenGlES11RFC::EglCopyTexImage2D:
ret = glCopyTexImage2D();
break;
case OpenGlES11RFC::EglCopyTexSubImage2D:
ret = glCopyTexSubImage2D();
break;
case OpenGlES11RFC::EglCullFace:
ret = glCullFace();
break;
case OpenGlES11RFC::EglDeleteBuffers:
ret = glDeleteBuffers();
break;
case OpenGlES11RFC::EglDeleteTextures:
ret = glDeleteTextures();
break;
case OpenGlES11RFC::EglDepthFunc:
ret = glDepthFunc();
break;
case OpenGlES11RFC::EglDepthMask:
ret = glDepthMask();
break;
case OpenGlES11RFC::EglDepthRangef:
ret = glDepthRangef();
break;
case OpenGlES11RFC::EglDepthRangex:
ret = glDepthRangex();
break;
case OpenGlES11RFC::EglDisable:
ret = glDisable();
break;
case OpenGlES11RFC::EglDisableClientState:
ret = glDisableClientState();
break;
case OpenGlES11RFC::EglDrawArrays:
ret = glDrawArrays();
break;
case OpenGlES11RFC::EglDrawElements:
ret = glDrawElements();
break;
case OpenGlES11RFC::EglEnable:
ret = glEnable();
break;
case OpenGlES11RFC::EglEnableClientState:
ret = glEnableClientState();
break;
case OpenGlES11RFC::EglFinish:
ret = glFinish();
break;
case OpenGlES11RFC::EglFlush:
ret = glFlush();
break;
case OpenGlES11RFC::EglFogf:
ret = glFogf();
break;
case OpenGlES11RFC::EglFogfv:
ret = glFogfv();
break;
case OpenGlES11RFC::EglFogx:
ret = glFogx();
break;
case OpenGlES11RFC::EglFogxv:
ret = glFogxv();
break;
case OpenGlES11RFC::EglFrontFace:
ret = glFrontFace();
break;
case OpenGlES11RFC::EglFrustumf:
ret = glFrustumf();
break;
case OpenGlES11RFC::EglFrustumx:
ret = glFrustumx();
break;
case OpenGlES11RFC::EglGenBuffers:
ret = glGenBuffers();
break;
case OpenGlES11RFC::EglGenTextures:
ret = glGenTextures();
break;
case OpenGlES11RFC::EglGetBooleanv:
ret = glGetBooleanv();
break;
case OpenGlES11RFC::EglGetBufferParameteriv:
ret = glGetBufferParameteriv();
break;
case OpenGlES11RFC::EglGetClipPlanef:
ret = glGetClipPlanef();
break;
case OpenGlES11RFC::EglGetClipPlanex:
ret = glGetClipPlanex();
break;
case OpenGlES11RFC::EglGetError:
ret = glGetError();
break;
case OpenGlES11RFC::EglGetFixedv:
ret = glGetFixedv();
break;
case OpenGlES11RFC::EglGetFloatv:
ret = glGetFloatv();
break;
case OpenGlES11RFC::EglGetIntegerv:
ret = glGetIntegerv();
break;
case OpenGlES11RFC::EglGetLightfv:
ret = glGetLightfv();
break;
case OpenGlES11RFC::EglGetLightxv:
ret = glGetLightxv();
break;
case OpenGlES11RFC::EglGetMaterialfv:
ret = glGetMaterialfv();
break;
case OpenGlES11RFC::EglGetMaterialxv:
ret = glGetMaterialxv();
break;
case OpenGlES11RFC::EglGetPointerv:
ret = glGetPointerv();
break;
// case OpenGlES11RFC::EglGetString:
// ret = glGetString();
// break;
case OpenGlES11RFC::EglGetTexEnvfv:
ret = glGetTexEnvfv();
break;
case OpenGlES11RFC::EglGetTexEnviv:
ret = glGetTexEnviv();
break;
case OpenGlES11RFC::EglGetTexEnvxv:
ret = glGetTexEnvxv();
break;
case OpenGlES11RFC::EglGetTexParameterfv:
ret = glGetTexParameterfv();
break;
case OpenGlES11RFC::EglGetTexParameteriv:
ret = glGetTexParameteriv();
break;
case OpenGlES11RFC::EglGetTexParameterxv:
ret = glGetTexParameterxv();
break;
case OpenGlES11RFC::EglHint:
ret = glHint();
break;
case OpenGlES11RFC::EglIsBuffer:
ret = glIsBuffer();
break;
case OpenGlES11RFC::EglIsEnabled:
ret = glIsEnabled();
break;
case OpenGlES11RFC::EglIsTexture:
ret = glIsTexture();
break;
case OpenGlES11RFC::EglLightModelf:
ret = glLightModelf();
break;
case OpenGlES11RFC::EglLightModelfv:
ret = glLightModelfv();
break;
case OpenGlES11RFC::EglLightModelx:
ret = glLightModelx();
break;
case OpenGlES11RFC::EglLightModelxv:
ret = glLightModelxv();
break;
case OpenGlES11RFC::EglLightf:
ret = glLightf();
break;
case OpenGlES11RFC::EglLightfv:
ret = glLightfv();
break;
case OpenGlES11RFC::EglLightx:
ret = glLightx();
break;
case OpenGlES11RFC::EglLightxv:
ret = glLightxv();
break;
case OpenGlES11RFC::EglLineWidth:
ret = glLineWidth();
break;
case OpenGlES11RFC::EglLineWidthx:
ret = glLineWidthx();
break;
case OpenGlES11RFC::EglLoadIdentity:
ret = glLoadIdentity();
break;
case OpenGlES11RFC::EglLoadMatrixf:
ret = glLoadMatrixf();
break;
case OpenGlES11RFC::EglLoadMatrixx:
ret = glLoadMatrixx();
break;
case OpenGlES11RFC::EglLogicOp:
ret = glLogicOp();
break;
case OpenGlES11RFC::EglMaterialf:
ret = glMaterialf();
break;
case OpenGlES11RFC::EglMaterialfv:
ret = glMaterialfv();
break;
case OpenGlES11RFC::EglMaterialx:
ret = glMaterialx();
break;
case OpenGlES11RFC::EglMaterialxv:
ret = glMaterialxv();
break;
case OpenGlES11RFC::EglMatrixMode:
ret = glMatrixMode();
break;
case OpenGlES11RFC::EglMultMatrixf:
ret = glMultMatrixf();
break;
case OpenGlES11RFC::EglMultMatrixx:
ret = glMultMatrixx();
break;
case OpenGlES11RFC::EglMultiTexCoord4f:
ret = glMultiTexCoord4f();
break;
case OpenGlES11RFC::EglMultiTexCoord4x:
ret = glMultiTexCoord4x();
break;
case OpenGlES11RFC::EglNormal3f:
ret = glNormal3f();
break;
case OpenGlES11RFC::EglNormal3x:
ret = glNormal3x();
break;
case OpenGlES11RFC::EglOrthof:
ret = glOrthof();
break;
case OpenGlES11RFC::EglOrthox:
ret = glOrthox();
break;
case OpenGlES11RFC::EglPixelStorei:
ret = glPixelStorei();
break;
case OpenGlES11RFC::EglPointParameterf:
ret = glPointParameterf();
break;
case OpenGlES11RFC::EglPointParameterfv:
ret = glPointParameterfv();
break;
case OpenGlES11RFC::EglPointParameterx:
ret = glPointParameterx();
break;
case OpenGlES11RFC::EglPointParameterxv:
ret = glPointParameterxv();
break;
case OpenGlES11RFC::EglPointSize:
ret = glPointSize();
break;
case OpenGlES11RFC::EglPointSizex:
ret = glPointSizex();
break;
case OpenGlES11RFC::EglPolygonOffset:
ret = glPolygonOffset();
break;
case OpenGlES11RFC::EglPolygonOffsetx:
ret = glPolygonOffsetx();
break;
case OpenGlES11RFC::EglPopMatrix:
ret = glPopMatrix();
break;
case OpenGlES11RFC::EglPushMatrix:
ret = glPushMatrix();
break;
case OpenGlES11RFC::EglReadPixels:
ret = glReadPixels();
break;
case OpenGlES11RFC::EglRotatef:
ret = glRotatef();
break;
case OpenGlES11RFC::EglRotatex:
ret = glRotatex();
break;
case OpenGlES11RFC::EglSampleCoverage:
ret = glSampleCoverage();
break;
case OpenGlES11RFC::EglSampleCoveragex:
ret = glSampleCoveragex();
break;
case OpenGlES11RFC::EglScalef:
ret = glScalef();
break;
case OpenGlES11RFC::EglScalex:
ret = glScalex();
break;
case OpenGlES11RFC::EglScissor:
ret = glScissor();
break;
case OpenGlES11RFC::EglShadeModel:
ret = glShadeModel();
break;
case OpenGlES11RFC::EglStencilFunc:
ret = glStencilFunc();
break;
case OpenGlES11RFC::EglStencilMask:
ret = glStencilMask();
break;
case OpenGlES11RFC::EglStencilOp:
ret = glStencilOp();
break;
case OpenGlES11RFC::EglTexEnvf:
ret = glTexEnvf();
break;
case OpenGlES11RFC::EglTexEnvfv:
ret = glTexEnvfv();
break;
case OpenGlES11RFC::EglTexEnvi:
ret = glTexEnvi();
break;
case OpenGlES11RFC::EglTexEnviv:
ret = glTexEnviv();
break;
case OpenGlES11RFC::EglTexEnvx:
ret = glTexEnvx();
break;
case OpenGlES11RFC::EglTexEnvxv:
ret = glTexEnvxv();
break;
case OpenGlES11RFC::EglTexImage2D:
ret = glTexImage2D();
break;
case OpenGlES11RFC::EglTexParameterf:
ret = glTexParameterf();
break;
case OpenGlES11RFC::EglTexParameterfv:
ret = glTexParameterfv();
break;
case OpenGlES11RFC::EglTexParameteri:
ret = glTexParameteri();
break;
case OpenGlES11RFC::EglTexParameteriv:
ret = glTexParameteriv();
break;
case OpenGlES11RFC::EglTexParameterx:
ret = glTexParameterx();
break;
case OpenGlES11RFC::EglTexParameterxv:
ret = glTexParameterxv();
break;
case OpenGlES11RFC::EglTexSubImage2D:
ret = glTexSubImage2D();
break;
case OpenGlES11RFC::EglTranslatef:
ret = glTranslatef();
break;
case OpenGlES11RFC::EglTranslatex:
ret = glTranslatex();
break;
case OpenGlES11RFC::EglViewport:
ret = glViewport();
break;
// from Eglextplatform.h
case OpenGlES11RFC::EglCurrentPaletteMatrixOES:
ret = glCurrentPaletteMatrixOES();
break;
case OpenGlES11RFC::EglDrawTexfOES:
ret = glDrawTexfOES();
break;
case OpenGlES11RFC::EglDrawTexfvOES:
ret = glDrawTexfvOES();
break;
case OpenGlES11RFC::EglDrawTexiOES:
ret = glDrawTexiOES();
break;
case OpenGlES11RFC::EglDrawTexivOES:
ret = glDrawTexivOES();
break;
case OpenGlES11RFC::EglDrawTexsOES:
ret = glDrawTexsOES();
break;
case OpenGlES11RFC::EglDrawTexsvOES:
ret = glDrawTexsvOES();
break;
case OpenGlES11RFC::EglDrawTexxOES:
ret = glDrawTexxOES();
break;
case OpenGlES11RFC::EglDrawTexxvOES:
ret = glDrawTexxvOES();
break;
case OpenGlES11RFC::EglLoadPaletteFromModelViewMatrixOES:
ret = glLoadPaletteFromModelViewMatrixOES();
break;
case OpenGlES11RFC::EglQueryMatrixxOES:
ret = glQueryMatrixxOES();
break;
case OpenGlES11RFC::EglColorPointer:
case OpenGlES11RFC::EglNormalPointer:
case OpenGlES11RFC::EglTexCoordPointer:
case OpenGlES11RFC::EglVertexPointer:
case OpenGlES11RFC::EglMatrixIndexPointerOES:
case OpenGlES11RFC::EglWeightPointerOES:
TRACE("OpenGLES11APIWrapper: ERROR! Vertex pointer functions are not handled directly, should not be here\n");
break;
// client shutdown
case OpenGlES11RFC::EClientShutdown:
TRACE("OpenGLES11APIWrapper: Client shutdown unimplemented\n");
break;
default:
TRACE("OpenGLES11APIWrapper: Unimplemented OpenGL ES Op code %u\n",aCode);
break;
}
TRACE("OpenGLES11APIWrapper: OpenGL ES 1.1 command processed\n");
return ret;
}
int OGLES11Wrapper::WriteReply()
{
#ifdef LOG_ERROR
#ifdef PRINT_TRACES
int operationid = (int)m_currentFunctionCall.Data().Header().iOpCode;
#endif
int glerror = ::glGetError();
if ( m_lastGlError != glerror )
{
if ( GL_NO_ERROR != glerror )
{
TRACE("OpenGLES11APIWrapper: OpenGL error 0x%X, for request %d\n", glerror, operationid );
}
m_lastGlError = glerror;
}
#endif
return APIWrapper::WriteReply();
}
// ///////////////////////////////////////////////////
// Here follows the functions that map to the GL calls
int OGLES11Wrapper::glActiveTexture()
{
GLenum texture;
m_currentFunctionCall.GetParamValue(texture, 0);
::glActiveTexture(texture);
return WriteReply();
}
int OGLES11Wrapper::glAlphaFunc()
{
GLenum func;
m_currentFunctionCall.GetParamValue(func, 0);
GLclampf ref;
m_currentFunctionCall.GetParamValue(ref, 1);
::glAlphaFunc(func, ref);
return WriteReply();
}
int OGLES11Wrapper::glAlphaFuncx()
{
GLenum func;
m_currentFunctionCall.GetParamValue(func, 0);
GLclampx ref;
m_currentFunctionCall.GetParamValue(ref, 1);
::glAlphaFuncx(func, ref);
return WriteReply();
}
int OGLES11Wrapper::glBindBuffer()
{
GLenum target;
m_currentFunctionCall.GetParamValue(target, 0);
GLuint buffer;
m_currentFunctionCall.GetParamValue(buffer, 1);
::glBindBuffer(target, buffer);
return WriteReply();
}
int OGLES11Wrapper::glBindTexture()
{
GLenum target;
m_currentFunctionCall.GetParamValue(target, 0);
GLuint texIndex;
m_currentFunctionCall.GetParamValue(texIndex, 1);
::glBindTexture(target, texIndex);
return WriteReply();
}
int OGLES11Wrapper::glBlendFunc()
{
GLenum src;
m_currentFunctionCall.GetParamValue(src, 0);
GLenum dst;
m_currentFunctionCall.GetParamValue(dst, 1);
::glBlendFunc(src, dst);
return WriteReply();
}
int OGLES11Wrapper::glBufferData()
{
GLenum target;
m_currentFunctionCall.GetParamValue(target, 0);
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetParamValue(size, 1);
void* data;
//GLsizeiptr size2;
GLint size2;
m_currentFunctionCall.GetVectorData(data, size2, 2); //is this correct??
//size == size2 ?
GLenum usage;
m_currentFunctionCall.GetParamValue(usage, 3);
::glBufferData(target, size, data, usage);
return WriteReply();
}
int OGLES11Wrapper::glBufferSubData()
{
GLenum target;
m_currentFunctionCall.GetParamValue(target, 0);
//GLintptr offset;
GLint offset;
m_currentFunctionCall.GetParamValue(offset, 1);
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetParamValue(size, 2);
void* data;
//GLsizeiptr size2;
GLint size2;
m_currentFunctionCall.GetVectorData(data, size2, 3); //is this correct??
::glBufferSubData(target,offset,size,data);
return WriteReply();
}
int OGLES11Wrapper::glClear()
{
GLbitfield buf;
m_currentFunctionCall.GetParamValue(buf, 0);
::glClear(buf);
return WriteReply();
}
int OGLES11Wrapper::glClearColor()
{
GLclampf r;
m_currentFunctionCall.GetParamValue(r, 0);
GLclampf g;
m_currentFunctionCall.GetParamValue(g, 1);
GLclampf b;
m_currentFunctionCall.GetParamValue(b, 2);
GLclampf a;
m_currentFunctionCall.GetParamValue(a, 3);
::glClearColor(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glClearColorx()
{
GLclampx r;
m_currentFunctionCall.GetParamValue(r, 0);
GLclampx g;
m_currentFunctionCall.GetParamValue(g, 1);
GLclampx b;
m_currentFunctionCall.GetParamValue(b, 2);
GLclampx a;
m_currentFunctionCall.GetParamValue(a, 3);
::glClearColorx(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glClearDepthf()
{
GLclampf d;
m_currentFunctionCall.GetParamValue(d, 0);
::glClearDepthf(d);
return WriteReply();
}
int OGLES11Wrapper::glClearDepthx()
{
GLfixed d;
m_currentFunctionCall.GetParamValue(d, 0);
::glClearDepthx(d);
return WriteReply();
}
int OGLES11Wrapper::glClearStencil()
{
GLint s;
m_currentFunctionCall.GetParamValue(s, 0);
::glClearStencil(s);
return WriteReply();
}
int OGLES11Wrapper::glClientActiveTexture()
{
GLenum texture;
m_currentFunctionCall.GetParamValue(texture, 0);
::glClientActiveTexture(texture);
return WriteReply();
}
int OGLES11Wrapper::glClipPlanef()
{
GLenum plane;
GLfloat* equation;
m_currentFunctionCall.GetParamValue(plane, 0);
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetVectorData(equation, size, 1);
::glClipPlanef(plane,equation);
return WriteReply();
}
int OGLES11Wrapper::glClipPlanex()
{
GLenum plane;
GLfixed* equation;
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetParamValue(plane, 0);
m_currentFunctionCall.GetVectorData(equation, size, 1);
::glClipPlanex(plane,equation);
return WriteReply();
}
int OGLES11Wrapper::glColor4f()
{
GLfloat r,g,b,a;
m_currentFunctionCall.GetParamValue(r, 0);
m_currentFunctionCall.GetParamValue(g, 1);
m_currentFunctionCall.GetParamValue(b, 2);
m_currentFunctionCall.GetParamValue(a, 3);
::glColor4f(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glColor4ub()
{
GLubyte r,g,b,a;
m_currentFunctionCall.GetParamValue(r, 0);
m_currentFunctionCall.GetParamValue(g, 1);
m_currentFunctionCall.GetParamValue(b, 2);
m_currentFunctionCall.GetParamValue(a, 3);
::glColor4ub(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glColor4x()
{
GLfixed r,g,b,a;
m_currentFunctionCall.GetParamValue(r, 0);
m_currentFunctionCall.GetParamValue(g, 1);
m_currentFunctionCall.GetParamValue(b, 2);
m_currentFunctionCall.GetParamValue(a, 3);
::glColor4x(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glColorMask()
{
GLboolean r,g,b,a;
m_currentFunctionCall.GetParamValue(r, 0);
m_currentFunctionCall.GetParamValue(g, 1);
m_currentFunctionCall.GetParamValue(b, 2);
m_currentFunctionCall.GetParamValue(a, 3);
::glColorMask(r,g,b,a);
return WriteReply();
}
int OGLES11Wrapper::glCompressedTexImage2D()
{
GLenum target;
GLint level;
GLenum internalFormat;
GLsizei width;
GLsizei height;
GLint border;
GLsizei imageSize;
GLvoid* data;
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(internalFormat, 2);
m_currentFunctionCall.GetParamValue(width, 3);
m_currentFunctionCall.GetParamValue(height, 4);
m_currentFunctionCall.GetParamValue(border, 5);
m_currentFunctionCall.GetParamValue(imageSize, 6);
m_currentFunctionCall.GetVectorData(data, size, 7);
::glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data);
return WriteReply();
}
int OGLES11Wrapper::glCompressedTexSubImage2D()
{
GLenum target;
GLint level;
GLint xoffset;
GLint yoffset;
GLsizei width;
GLsizei height;
GLenum format;
GLsizei imageSize;
GLvoid* data;
//GLsizeiptr size;
GLint size;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(xoffset, 2);
m_currentFunctionCall.GetParamValue(yoffset, 3);
m_currentFunctionCall.GetParamValue(width, 4);
m_currentFunctionCall.GetParamValue(height, 5);
m_currentFunctionCall.GetParamValue(format, 6);
m_currentFunctionCall.GetParamValue(imageSize, 7);
m_currentFunctionCall.GetVectorData(data, size, 8);
::glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
return WriteReply();
}
int OGLES11Wrapper::glCopyTexImage2D()
{
GLenum target;
GLint level;
GLenum internalFormat;
GLint x;
GLint y;
GLsizei width;
GLsizei height;
GLint border;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(internalFormat, 2);
m_currentFunctionCall.GetParamValue(x, 3);
m_currentFunctionCall.GetParamValue(y, 4);
m_currentFunctionCall.GetParamValue(width, 5);
m_currentFunctionCall.GetParamValue(height, 6);
m_currentFunctionCall.GetParamValue(border, 7);
::glCopyTexImage2D(target,level,internalFormat,x,y,width,height,border);
return WriteReply();
}
int OGLES11Wrapper::glCopyTexSubImage2D()
{
GLenum target;
GLint level;
GLint xoffset;
GLint yoffset;
GLint x;
GLint y;
GLsizei width;
GLsizei height;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(xoffset, 2);
m_currentFunctionCall.GetParamValue(yoffset, 3);
m_currentFunctionCall.GetParamValue(x, 4);
m_currentFunctionCall.GetParamValue(y, 5);
m_currentFunctionCall.GetParamValue(width, 6);
m_currentFunctionCall.GetParamValue(height, 7);
::glCopyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
return WriteReply();
}
int OGLES11Wrapper::glCullFace()
{
GLenum mode;
m_currentFunctionCall.GetParamValue(mode, 0);
::glCullFace(mode);
return WriteReply();
}
int OGLES11Wrapper::glDeleteBuffers()
{
GLsizei n;
GLuint *buffers;
m_currentFunctionCall.GetParamValue(n, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(buffers, size1, 1);
::glDeleteBuffers(n, buffers);
return WriteReply();
}
int OGLES11Wrapper::glDeleteTextures()
{
GLsizei n;
GLuint *textures;
m_currentFunctionCall.GetParamValue(n, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(textures, size1, 1);
::glDeleteTextures(n, textures);
return WriteReply();
}
int OGLES11Wrapper::glDepthFunc()
{
GLenum func;
m_currentFunctionCall.GetParamValue(func, 0);
::glDepthFunc(func);
return WriteReply();
}
int OGLES11Wrapper::glDepthMask()
{
GLboolean flag;
m_currentFunctionCall.GetParamValue(flag, 0);
::glDepthMask(flag);
return WriteReply();
}
int OGLES11Wrapper::glDepthRangef()
{
GLclampf zNear;
GLclampf zFar;
m_currentFunctionCall.GetParamValue(zNear, 0);
m_currentFunctionCall.GetParamValue(zFar, 1);
::glDepthRangef(zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glDepthRangex()
{
GLclampx zNear;
GLclampx zFar;
m_currentFunctionCall.GetParamValue(zNear, 0);
m_currentFunctionCall.GetParamValue(zFar, 1);
::glDepthRangex(zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glDisable()
{
GLenum cap;
m_currentFunctionCall.GetParamValue(cap, 0);
::glDisable(cap);
return WriteReply();
}
int OGLES11Wrapper::glDisableClientState()
{
GLenum array;
m_currentFunctionCall.GetParamValue(array, 0);
::glDisableClientState(array);
return WriteReply();
}
int OGLES11Wrapper::glDrawArrays()
{
GLenum mode;
GLint first;
GLsizei count;
m_currentFunctionCall.GetParamValue(mode, 0);
m_currentFunctionCall.GetParamValue(first, 1);
m_currentFunctionCall.GetParamValue(count, 2);
// Get the data arrays themselves -- note that this is additional data
TInt arrayCount, arrayEnabled;
m_currentFunctionCall.GetParamValue(arrayCount, 3);
m_currentFunctionCall.GetParamValue(arrayEnabled, 4);
vertexArrayInfo *vertexArrays;
vertexArrays = (vertexArrayInfo *) malloc(arrayCount * sizeof(vertexArrayInfo));
for (int i=0; i<arrayCount; i++)
{
m_currentFunctionCall.GetParamValue(vertexArrays[i].size, 5 + 4*i);
m_currentFunctionCall.GetParamValue(vertexArrays[i].type, 6 + 4*i);
m_currentFunctionCall.GetParamValue(vertexArrays[i].stride, 7 + 4*i);
TInt size;
m_currentFunctionCall.GetVectorData(vertexArrays[i].pointer, size, 8 + 4*i);
}
int x = 0; //position in the vertexArrays, 'i' in the loop above
for(int i=0; i<NUM_ARRAYS; i++)
{
switch( i )
{
case COLOR_ARRAY:
if (arrayEnabled & (1<<6))
{
::glColorPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case NORMAL_ARRAY:
if (arrayEnabled & (1<<5))
{
::glNormalPointer(vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case POINT_SIZE_ARRAY:
if (arrayEnabled & (1<<4))
{
::glPointSizePointerOES(vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case TEX_COORD_ARRAY:
if (arrayEnabled & (1<<3))
{
::glTexCoordPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case VERTEX_ARRAY:
if (arrayEnabled & (1<<2)){
::glVertexPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case MATRIX_INDEX_ARRAY:
break;
case WEIGHT_ARRAY:
break;
default:
// Do nothing
break;
}
}
::glDrawArrays(mode, first, count);
return WriteReply();
}
int OGLES11Wrapper::glDrawElements()
{
GLenum mode;
GLsizei count;
GLenum type;
GLvoid *indices;
m_currentFunctionCall.GetParamValue(mode, 0);
m_currentFunctionCall.GetParamValue(count, 1);
m_currentFunctionCall.GetParamValue(type, 2);
TInt size3;
m_currentFunctionCall.GetVectorData(indices, size3, 3);
// Get the data arrays themselves -- note that this is additional data
TInt arrayCount, arrayEnabled;
m_currentFunctionCall.GetParamValue(arrayCount, 4);
m_currentFunctionCall.GetParamValue(arrayEnabled, 5);
vertexArrayInfo *vertexArrays;
vertexArrays = (vertexArrayInfo *) malloc(arrayCount * sizeof(vertexArrayInfo));
for (int i=0; i<arrayCount; i++)
{
m_currentFunctionCall.GetParamValue(vertexArrays[i].size, 6 + 4*i);
m_currentFunctionCall.GetParamValue(vertexArrays[i].type, 7 + 4*i);
m_currentFunctionCall.GetParamValue(vertexArrays[i].stride, 8 + 4*i);
TInt size;
m_currentFunctionCall.GetVectorData(vertexArrays[i].pointer, size, 9 + 4*i);
}
int x = 0; //position in the vertexArrays, 'i' in the loop above
for(int i=0; i<NUM_ARRAYS; i++)
{
switch( i )
{
case COLOR_ARRAY:
if (arrayEnabled & (1<<6))
{
::glColorPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case NORMAL_ARRAY:
if (arrayEnabled & (1<<5))
{
::glNormalPointer(vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case POINT_SIZE_ARRAY:
if (arrayEnabled & (1<<4))
{
::glPointSizePointerOES(vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case TEX_COORD_ARRAY:
if (arrayEnabled & (1<<3))
{
::glTexCoordPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case VERTEX_ARRAY:
if (arrayEnabled & (1<<2)){
::glVertexPointer(vertexArrays[x].size, vertexArrays[x].type, vertexArrays[x].stride, vertexArrays[x].pointer);
x++;
}
break;
case MATRIX_INDEX_ARRAY:
break;
case WEIGHT_ARRAY:
break;
default:
// Do nothing
break;
}
}
::glDrawElements(mode, count, type, indices);
return WriteReply();
}
int OGLES11Wrapper::glEnable()
{
GLenum cap;
m_currentFunctionCall.GetParamValue(cap, 0);
::glEnable(cap);
return WriteReply();
}
int OGLES11Wrapper::glEnableClientState()
{
GLenum array;
m_currentFunctionCall.GetParamValue(array, 0);
::glEnableClientState(array);
return WriteReply();
}
int OGLES11Wrapper::glFinish()
{
::glFinish();
return WriteReply();
}
int OGLES11Wrapper::glFlush()
{
::glFlush();
return WriteReply();
}
int OGLES11Wrapper::glFogf()
{
GLenum pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glFogf(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glFogfv()
{
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glFogfv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glFogx()
{
GLenum pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glFogx(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glFogxv()
{
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glFogxv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glFrontFace()
{
GLenum mode;
m_currentFunctionCall.GetParamValue(mode, 0);
::glFrontFace(mode);
return WriteReply();
}
int OGLES11Wrapper::glFrustumf()
{
GLfloat left;
GLfloat right;
GLfloat bottom;
GLfloat top;
GLfloat zNear;
GLfloat zFar;
m_currentFunctionCall.GetParamValue(left, 0);
m_currentFunctionCall.GetParamValue(right, 1);
m_currentFunctionCall.GetParamValue(bottom, 2);
m_currentFunctionCall.GetParamValue(top, 3);
m_currentFunctionCall.GetParamValue(zNear, 4);
m_currentFunctionCall.GetParamValue(zFar, 5);
::glFrustumf(left, right, bottom, top, zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glFrustumx()
{
GLfixed left;
GLfixed right;
GLfixed bottom;
GLfixed top;
GLfixed zNear;
GLfixed zFar;
m_currentFunctionCall.GetParamValue(left, 0);
m_currentFunctionCall.GetParamValue(right, 1);
m_currentFunctionCall.GetParamValue(bottom, 2);
m_currentFunctionCall.GetParamValue(top, 3);
m_currentFunctionCall.GetParamValue(zNear, 4);
m_currentFunctionCall.GetParamValue(zFar, 5);
::glFrustumx(left, right, bottom, top, zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glGenBuffers()
{
GLsizei n;
m_currentFunctionCall.GetParamValue(n, 0);
GLuint *buffers = (GLuint*)iStack->AllocFromStack( n*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLuint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLuint ) );
::glGenBuffers(n, buffers);
m_currentFunctionCall.SetVectorData( buffers, n, 1 ); // EOut
//TODO: when do we free the allocated buffer??
int ret = WriteReply(); //TODO: clarify the copy-pasted magic sequence
iStack->ClearStack();
buffers = NULL;
return ret;
}
int OGLES11Wrapper::glGenTextures()
{
GLsizei n;
m_currentFunctionCall.GetParamValue(n, 0);
GLuint *textures = (GLuint*)iStack->AllocFromStack( n*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLuint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLuint ) );
::glGenTextures(n, textures);
m_currentFunctionCall.SetVectorData( textures, n, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
textures = NULL;
return ret;
}
int OGLES11Wrapper::glGetBooleanv()
{
GLenum pname;
GLboolean *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
params = (GLboolean*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLboolean ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLboolean ) );
::glGetBooleanv(pname, params); //TODO: how does the ::glGetBooleanv know the array size?
m_currentFunctionCall.SetVectorData( params, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetBufferParameteriv()
{
GLenum target;
GLenum pname;
GLint *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLint*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetBufferParameteriv(target, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetClipPlanef()
{
GLenum pname;
GLfloat *equation;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(equation, size1, 1);
equation = (GLfloat*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetClipPlanef(pname, equation);
m_currentFunctionCall.SetVectorData( equation, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
equation = NULL;
return ret;
}
int OGLES11Wrapper::glGetClipPlanex()
{
GLenum pname;
GLfixed *eqn;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(eqn, size1, 1);
eqn = (GLfixed*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetClipPlanex(pname, eqn);
m_currentFunctionCall.SetVectorData( eqn, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
eqn = NULL;
return ret;
}
int OGLES11Wrapper::glGetError()
{
GLenum ret = ::glGetError();
m_currentFunctionCall.SetReturnValue((TUint32) ret);
return WriteReply();
}
int OGLES11Wrapper::glGetFixedv()
{
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
params = (GLfixed*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetFixedv(pname, params);
m_currentFunctionCall.SetVectorData( params, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetFloatv()
{
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
params = (GLfloat*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetFloatv(pname, params);
m_currentFunctionCall.SetVectorData( params, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetIntegerv()
{
GLenum pname;
GLint *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
params = (GLint*)iStack->AllocFromStack( size1*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetIntegerv(pname, params);
m_currentFunctionCall.SetVectorData( params, size1, 1 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetLightfv()
{
GLenum light;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfloat*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetLightfv(light, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetLightxv()
{
GLenum light;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfixed*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetLightxv(light, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetMaterialfv()
{
GLenum face;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfloat*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetMaterialfv(face, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetMaterialxv()
{
GLenum face;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfixed*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetMaterialxv(face, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetPointerv()
{
//never gets called?
return WriteReply();
}
int OGLES11Wrapper::glGetString()
{
// Not used
return WriteReply();
}
int OGLES11Wrapper::glGetTexEnvfv()
{
GLenum env;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(env, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfloat*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetTexEnvfv(env, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetTexEnviv()
{
GLenum env;
GLenum pname;
GLint *params;
m_currentFunctionCall.GetParamValue(env, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLint*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetTexEnviv(env, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetTexEnvxv()
{
GLenum env;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(env, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfixed*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetTexEnvxv(env, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetTexParameterfv()
{
GLenum target;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLfloat*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLfloat ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLfloat ) );
::glGetTexParameterfv(target, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetTexParameteriv()
{
GLenum target;
GLenum pname;
GLint *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLint*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetTexParameteriv(target, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glGetTexParameterxv()
{
GLenum target;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
params = (GLint*)iStack->AllocFromStack( size2*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLint ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLint ) );
::glGetTexParameterxv(target, pname, params);
m_currentFunctionCall.SetVectorData( params, size2, 2 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
params = NULL;
return ret;
}
int OGLES11Wrapper::glHint()
{
GLenum target;
GLenum mode;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(mode, 1);
::glHint(target, mode);
return WriteReply();
}
int OGLES11Wrapper::glIsBuffer()
{
GLuint buffer;
m_currentFunctionCall.GetParamValue(buffer, 0);
GLboolean ret = ::glIsBuffer(buffer);
m_currentFunctionCall.SetReturnValue( ret);
return WriteReply();
}
int OGLES11Wrapper::glIsEnabled()
{
GLenum cap;
m_currentFunctionCall.GetParamValue(cap, 0);
GLboolean ret = ::glIsEnabled(cap);
m_currentFunctionCall.SetReturnValue( ret);
return WriteReply();
}
int OGLES11Wrapper::glIsTexture()
{
GLuint texIndex;
m_currentFunctionCall.GetParamValue(texIndex, 0);
GLboolean ret = ::glIsEnabled(texIndex);
m_currentFunctionCall.SetReturnValue( ret);
return WriteReply();
}
int OGLES11Wrapper::glLightModelf()
{
GLenum pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glLightModelf(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glLightModelfv()
{
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glLightModelfv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glLightModelx()
{
GLenum pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glLightModelx(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glLightModelxv()
{
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glLightModelxv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glLightf()
{
GLenum light;
GLenum pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glLightf(light, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glLightfv()
{
GLenum light;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
::glLightfv(light, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glLightx()
{
GLenum light;
GLenum pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glLightx(light, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glLightxv()
{
GLenum light;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(light, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
::glLightxv(light, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glLineWidth()
{
GLfloat width;
m_currentFunctionCall.GetParamValue(width, 0);
::glLineWidth(width);
return WriteReply();
}
int OGLES11Wrapper::glLineWidthx()
{
GLfixed width;
m_currentFunctionCall.GetParamValue(width, 0);
::glLineWidthx(width);
return WriteReply();
}
int OGLES11Wrapper::glLoadIdentity()
{
::glLoadIdentity();
return WriteReply();
}
int OGLES11Wrapper::glLoadMatrixf()
{
GLfloat *m;
TInt size0;
m_currentFunctionCall.GetVectorData(m, size0, 0);
::glLoadMatrixf(m);
return WriteReply();
}
int OGLES11Wrapper::glLoadMatrixx()
{
GLfixed *m;
TInt size0;
m_currentFunctionCall.GetVectorData(m, size0, 0);
::glLoadMatrixx(m);
return WriteReply();
}
int OGLES11Wrapper::glLogicOp()
{
GLenum opcode;
m_currentFunctionCall.GetParamValue(opcode, 0);
::glLogicOp(opcode);
return WriteReply();
}
int OGLES11Wrapper::glMaterialf()
{
GLenum face;
GLenum pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glMaterialf(face, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glMaterialfv()
{
GLenum face;
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
::glMaterialfv(face, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glMaterialx()
{
GLenum face;
GLenum pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glMaterialx(face, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glMaterialxv()
{
GLenum face;
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(face, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size2;
m_currentFunctionCall.GetVectorData(params, size2, 2);
::glMaterialxv(face, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glMatrixMode()
{
GLenum mode;
m_currentFunctionCall.GetParamValue(mode, 0);
::glMatrixMode(mode);
return WriteReply();
}
int OGLES11Wrapper::glMultMatrixf()
{
GLfloat *m;
TInt size0;
m_currentFunctionCall.GetVectorData(m, size0, 0);
::glMultMatrixf(m);
return WriteReply();
}
int OGLES11Wrapper::glMultMatrixx()
{
GLfixed *m;
TInt size0;
m_currentFunctionCall.GetVectorData(m, size0, 0);
::glMultMatrixx(m);
return WriteReply();
}
int OGLES11Wrapper::glMultiTexCoord4f()
{
GLenum target;
GLfloat s;
GLfloat t;
GLfloat r;
GLfloat q;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(s, 1);
m_currentFunctionCall.GetParamValue(t, 2);
m_currentFunctionCall.GetParamValue(r, 3);
m_currentFunctionCall.GetParamValue(q, 4);
::glMultiTexCoord4f(target, s, t, r, q);
return WriteReply();
}
int OGLES11Wrapper::glMultiTexCoord4x()
{
GLenum target;
GLfixed s;
GLfixed t;
GLfixed r;
GLfixed q;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(s, 1);
m_currentFunctionCall.GetParamValue(t, 2);
m_currentFunctionCall.GetParamValue(r, 3);
m_currentFunctionCall.GetParamValue(q, 4);
::glMultiTexCoord4x(target, s, t, r, q);
return WriteReply();
}
int OGLES11Wrapper::glNormal3f()
{
GLfloat nx;
GLfloat ny;
GLfloat nz;
m_currentFunctionCall.GetParamValue(nx, 0);
m_currentFunctionCall.GetParamValue(ny, 1);
m_currentFunctionCall.GetParamValue(nz, 2);
::glNormal3f(nx, ny, nz);
return WriteReply();
}
int OGLES11Wrapper::glNormal3x()
{
GLfixed nx;
GLfixed ny;
GLfixed nz;
m_currentFunctionCall.GetParamValue(nx, 0);
m_currentFunctionCall.GetParamValue(ny, 1);
m_currentFunctionCall.GetParamValue(nz, 2);
::glNormal3x(nx, ny, nz);
return WriteReply();
}
int OGLES11Wrapper::glOrthof()
{
GLfloat left;
GLfloat right;
GLfloat bottom;
GLfloat top;
GLfloat zNear;
GLfloat zFar;
m_currentFunctionCall.GetParamValue(left, 0);
m_currentFunctionCall.GetParamValue(right, 1);
m_currentFunctionCall.GetParamValue(bottom, 2);
m_currentFunctionCall.GetParamValue(top, 3);
m_currentFunctionCall.GetParamValue(zNear, 4);
m_currentFunctionCall.GetParamValue(zFar, 5);
::glOrthof(left, right, bottom, top, zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glOrthox()
{
GLfixed left;
GLfixed right;
GLfixed bottom;
GLfixed top;
GLfixed zNear;
GLfixed zFar;
m_currentFunctionCall.GetParamValue(left, 0);
m_currentFunctionCall.GetParamValue(right, 1);
m_currentFunctionCall.GetParamValue(bottom, 2);
m_currentFunctionCall.GetParamValue(top, 3);
m_currentFunctionCall.GetParamValue(zNear, 4);
m_currentFunctionCall.GetParamValue(zFar, 5);
::glOrthox(left, right, bottom, top, zNear, zFar);
return WriteReply();
}
int OGLES11Wrapper::glPixelStorei()
{
GLenum pname;
GLint param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glPixelStorei(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glPointParameterf()
{
GLenum pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glPointParameterf(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glPointParameterfv()
{
GLenum pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glPointParameterfv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glPointParameterx()
{
GLenum pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(pname, 0);
m_currentFunctionCall.GetParamValue(param, 1);
::glPointParameterx(pname, param);
return WriteReply();
}
int OGLES11Wrapper::glPointParameterxv()
{
GLenum pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(pname, 0);
TInt size1;
m_currentFunctionCall.GetVectorData(params, size1, 1);
::glPointParameterxv(pname, params);
return WriteReply();
}
int OGLES11Wrapper::glPointSize()
{
GLfloat size;
m_currentFunctionCall.GetParamValue(size, 0);
::glPointSize(size);
return WriteReply();
}
int OGLES11Wrapper::glPointSizex()
{
GLfixed size;
m_currentFunctionCall.GetParamValue(size, 0);
::glPointSizex(size);
return WriteReply();
}
int OGLES11Wrapper::glPolygonOffset()
{
GLfloat factor;
GLfloat units;
m_currentFunctionCall.GetParamValue(factor, 0);
m_currentFunctionCall.GetParamValue(units, 1);
::glPolygonOffset(factor, units);
return WriteReply();
}
int OGLES11Wrapper::glPolygonOffsetx()
{
GLfixed factor;
GLfixed units;
m_currentFunctionCall.GetParamValue(factor, 0);
m_currentFunctionCall.GetParamValue(units, 1);
::glPolygonOffsetx(factor, units);
return WriteReply();
}
int OGLES11Wrapper::glPopMatrix()
{
::glPopMatrix();
return WriteReply();
}
int OGLES11Wrapper::glPushMatrix()
{
::glPushMatrix();
return WriteReply();
}
int OGLES11Wrapper::glReadPixels()
{
GLint x;
GLint y;
GLsizei width;
GLsizei height;
GLenum format;
GLenum type;
GLvoid *pixels;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(width, 2);
m_currentFunctionCall.GetParamValue(height, 3);
m_currentFunctionCall.GetParamValue(format, 4);
m_currentFunctionCall.GetParamValue(type, 5);
TInt size6;
m_currentFunctionCall.GetVectorData(pixels, size6, 6);
pixels = (GLvoid*)iStack->AllocFromStack( size6*m_currentFunctionCall.GetTypeSize( OpenGlES11RFC::EGLvoid ),
m_currentFunctionCall.GetTypeAlignment( OpenGlES11RFC::EGLvoid ) );
::glReadPixels(x, y, width, height, format, type, pixels);
m_currentFunctionCall.SetVectorData( pixels, size6, 6 ); // EOut
int ret = WriteReply();
iStack->ClearStack();
pixels = NULL;
return ret;
}
int OGLES11Wrapper::glRotatef()
{
GLfloat angle, x, y, z;
m_currentFunctionCall.GetParamValue(angle, 0);
m_currentFunctionCall.GetParamValue(x, 1);
m_currentFunctionCall.GetParamValue(y, 2);
m_currentFunctionCall.GetParamValue(z, 3);
::glRotatef(angle, x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glRotatex()
{
GLfixed angle, x, y, z;
m_currentFunctionCall.GetParamValue(angle, 0);
m_currentFunctionCall.GetParamValue(x, 1);
m_currentFunctionCall.GetParamValue(y, 2);
m_currentFunctionCall.GetParamValue(z, 3);
::glRotatex(angle, x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glSampleCoverage()
{
GLclampf value;
GLboolean invert;
m_currentFunctionCall.GetParamValue(value, 0);
m_currentFunctionCall.GetParamValue(invert, 1);
::glSampleCoverage(value, invert);
return WriteReply();
}
int OGLES11Wrapper::glSampleCoveragex()
{
GLclampx value;
GLboolean invert;
m_currentFunctionCall.GetParamValue(value, 0);
m_currentFunctionCall.GetParamValue(invert, 1);
::glSampleCoveragex(value, invert);
return WriteReply();
}
int OGLES11Wrapper::glScalef()
{
GLfloat x, y, z;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(z, 2);
::glScalef(x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glScalex()
{
GLfixed x, y, z;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(z, 2);
::glScalex(x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glScissor()
{
GLint x, y;
GLsizei width, height;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(width, 2);
m_currentFunctionCall.GetParamValue(height, 3);
::glScissor(x, y, width, height);
return WriteReply();
}
int OGLES11Wrapper::glShadeModel()
{
GLenum mode;
m_currentFunctionCall.GetParamValue(mode, 0);
::glShadeModel(mode);
return WriteReply();
}
int OGLES11Wrapper::glStencilFunc()
{
GLenum func;
GLint ref;
GLuint mask;
m_currentFunctionCall.GetParamValue(func, 0);
m_currentFunctionCall.GetParamValue(ref, 1);
m_currentFunctionCall.GetParamValue(mask, 2);
::glStencilFunc(func, ref, mask);
return WriteReply();
}
int OGLES11Wrapper::glStencilMask()
{
GLuint mask;
m_currentFunctionCall.GetParamValue(mask, 0);
::glStencilMask(mask);
return WriteReply();
}
int OGLES11Wrapper::glStencilOp()
{
GLenum fail, zfail, zpass;
m_currentFunctionCall.GetParamValue(fail, 0);
m_currentFunctionCall.GetParamValue(zfail, 1);
m_currentFunctionCall.GetParamValue(zpass, 2);
::glStencilOp (fail, zfail, zpass);
return WriteReply();
}
int OGLES11Wrapper::glTexEnvf()
{
GLenum target, pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexEnvf(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexEnvfv()
{
GLenum target, pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexEnvfv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexEnvi()
{
GLenum target, pname;
GLint param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexEnvi(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexEnviv()
{
GLenum target, pname;
GLint *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexEnviv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexEnvx()
{
GLenum target, pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexEnvx(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexEnvxv()
{
GLenum target, pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexEnvxv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexImage2D()
{
GLenum target;
GLint level;
GLint internalformat;
GLsizei width;
GLsizei height;
GLint border;
GLenum format;
GLenum type;
GLvoid *pixels;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(internalformat, 2);
m_currentFunctionCall.GetParamValue(width, 3);
m_currentFunctionCall.GetParamValue(height, 4);
m_currentFunctionCall.GetParamValue(border, 5);
m_currentFunctionCall.GetParamValue(format, 6);
m_currentFunctionCall.GetParamValue(type, 7);
TInt size;
m_currentFunctionCall.GetVectorData(pixels, size, 8);
::glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
return WriteReply();
}
int OGLES11Wrapper::glTexParameterf()
{
GLenum target, pname;
GLfloat param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexParameterf(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexParameterfv()
{
GLenum target, pname;
GLfloat *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexParameterfv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexParameteri()
{
GLenum target, pname;
GLint param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexParameteri(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexParameteriv()
{
GLenum target, pname;
GLint *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexParameteriv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexParameterx()
{
GLenum target, pname;
GLfixed param;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
m_currentFunctionCall.GetParamValue(param, 2);
::glTexParameterx(target, pname, param);
return WriteReply();
}
int OGLES11Wrapper::glTexParameterxv()
{
GLenum target, pname;
GLfixed *params;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(pname, 1);
TInt size;
m_currentFunctionCall.GetVectorData(params, size, 2);
::glTexParameterxv(target, pname, params);
return WriteReply();
}
int OGLES11Wrapper::glTexSubImage2D()
{
GLenum target;
GLint level;
GLint xoffset;
GLint yoffset;
GLsizei width;
GLsizei height;
GLenum format;
GLenum type;
GLvoid *pixels;
m_currentFunctionCall.GetParamValue(target, 0);
m_currentFunctionCall.GetParamValue(level, 1);
m_currentFunctionCall.GetParamValue(xoffset, 2);
m_currentFunctionCall.GetParamValue(yoffset, 3);
m_currentFunctionCall.GetParamValue(width, 4);
m_currentFunctionCall.GetParamValue(height, 5);
m_currentFunctionCall.GetParamValue(format, 6);
m_currentFunctionCall.GetParamValue(type, 7);
TInt size8;
m_currentFunctionCall.GetVectorData(pixels, size8, 8);
::glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
return WriteReply();
}
int OGLES11Wrapper::glTranslatef()
{
GLfloat x, y, z;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(z, 2);
::glTranslatef(x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glTranslatex()
{
GLfixed x, y, z;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(z, 2);
::glTranslatex(x, y, z);
return WriteReply();
}
int OGLES11Wrapper::glViewport()
{
GLint x, y;
GLsizei width, height;
m_currentFunctionCall.GetParamValue(x, 0);
m_currentFunctionCall.GetParamValue(y, 1);
m_currentFunctionCall.GetParamValue(width, 2);
m_currentFunctionCall.GetParamValue(height, 3);
::glViewport(x, y, width, height);
return WriteReply();
}
int OGLES11Wrapper::glCurrentPaletteMatrixOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexfOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexfvOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexiOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexivOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexsOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexsvOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexxOES()
{
return 0;
}
int OGLES11Wrapper::glDrawTexxvOES()
{
return 0;
}
int OGLES11Wrapper::glLoadPaletteFromModelViewMatrixOES()
{
return 0;
}
int OGLES11Wrapper::glQueryMatrixxOES()
{
return 0;
}