class CuGLES : public CuEGL
{
public:
void Ortho(double left, double right, double bottom, double top, double Near, double Far);
void Frustum( double fovy, double aspect, double zNear, double zFar );
void Viewport(int x, int y, int width, int height);
#if 0
void DrawArrays(const void *pvlist, const void *pnvlist, const void *ptclist,int stride, int numvertices);
void DrawElements(const void *pvlist, const void *pnvlist, const void *ptclist,int stride, int numvertices,
const void *pfaceindex, int numfaceindex);
#endif
CuGLES();
virtual ~CuGLES();
};
CuGLES::CuGLES()
{
}
CuGLES::~CuGLES()
{
}
#if 0
void CuGLES::DrawArrays(const void *pvlist, const void *pnvlist, const void *ptclist, int stride, int numvertices)
{
glTexCoordPointer(2, GL_FIXED, stride, ptclist);
// setup client states
glEnableClientState(GL_TEXTURE_COORD_ARRAY); // setup arrays
// first the vertices
glVertexPointer(3, GL_FIXED , stride, pvlist);
glEnableClientState(GL_VERTEX_ARRAY);
// next the normals
// glNormalPointer(GL_SHORT, stride, pnvlist);
glNormalPointer(GL_FIXED , stride, pnvlist);
glEnableClientState(GL_NORMAL_ARRAY);
glDrawArrays(GL_TRIANGLES , 0, numvertices);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
void CuGLES::DrawElements(const void *pvlist, const void *pnvlist, const void *ptclist,int stride, int numvertices,
const void *pfaceindex, int numfaceindex)
{
glTexCoordPointer(2, GL_FIXED, stride, ptclist);
// setup client states
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
// setup arrays
// first the vertices
glVertexPointer(3, GL_FIXED , stride, pvlist);
glEnableClientState(GL_VERTEX_ARRAY);
// next the normals
glNormalPointer(GL_FIXED , stride, pnvlist);
glEnableClientState(GL_NORMAL_ARRAY);
glDrawElements(GL_TRIANGLES , numfaceindex, GL_UNSIGNED_BYTE , pfaceindex);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
#endif
void CuGLES::Viewport(int x, int y, int width, int height)
{
glViewport(x,y,width,height);
}
#define PI_ 3.14159265358979323846
void CuGLES::Frustum(double fovy, double aspect, double zNear, double zFar)
{
// 設定投影
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
float right, left, top, bottom;
top = zNear * tan(fovy * PI_ / 180.0 / 2 );
bottom = -top;
right = top * aspect;
left = -right;
glFrustumx(EGL_FixedFromFloat(left), EGL_FixedFromFloat(right),
EGL_FixedFromFloat(bottom), EGL_FixedFromFloat(top),
EGL_FixedFromFloat(zNear), EGL_FixedFromFloat(zFar) );
}
void CuGLES::Ortho(double left, double right, double bottom, double top, double Near, double Far)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthox(
EGL_FixedFromFloat(left),
EGL_FixedFromFloat(right),
EGL_FixedFromFloat(bottom),
EGL_FixedFromFloat(top),
EGL_FixedFromFloat(Near),
EGL_FixedFromFloat(Far));
}
完全不了解為什麼要繼承, 想不起來.
沒有留言:
張貼留言