⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gl2d3d.h

📁 The source code of Doom legacy for windows
💻 H
📖 第 1 页 / 共 4 页
字号:

// WIN_specular_fog 
#define GL_FOG_SPECULAR_TEXTURE_WIN       0x80EC

// For compatibility with OpenGL v1.0 
#define GL_LOGIC_OP GL_INDEX_LOGIC_OP
#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT


// ***********************************************************

class GL_2_D3D {
private:
    LPDIRECT3DVIEWPORT3	    d3d_viewport;
    LPDIRECT3DVIEWPORT3	    d3d_scissor;
    int                     screen_width;
    int                     screen_height;

public:
    void Accum(GLenum op, GLfloat value);
    void AlphaFunc(GLenum func, GLclampf ref);
    GLboolean AreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences);
    void ArrayElement(GLint i);
    void Begin(GLenum mode);
    void BindTexture(GLenum target, GLuint texture);
    void Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
    void BlendFunc(GLenum sfactor, GLenum dfactor);
    void CallList(GLuint list);
    void CallLists(GLsizei n, GLenum type, const GLvoid *lists);
    void Clear(GLbitfield mask);
    void ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    void ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
    void ClearDepth(GLclampd depth);
    void ClearIndex(GLfloat c);
    void ClearStencil(GLint s);
    void ClipPlane(GLenum plane, const GLdouble *equation);
    void Color3b(GLbyte red, GLbyte green, GLbyte blue);
    void Color3bv(const GLbyte *v);
    void Color3d(GLdouble red, GLdouble green, GLdouble blue);
    void Color3dv(const GLdouble *v);
    void Color3f(GLfloat red, GLfloat green, GLfloat blue);
    void Color3fv(const GLfloat *v);
    void Color3i(GLint red, GLint green, GLint blue);
    void Color3iv(const GLint *v);
    void Color3s(GLshort red, GLshort green, GLshort blue);
    void Color3sv(const GLshort *v);
    void Color3ub(GLubyte red, GLubyte green, GLubyte blue);
    void Color3ubv(const GLubyte *v);
    void Color3ui(GLuint red, GLuint green, GLuint blue);
    void Color3uiv(const GLuint *v);
    void Color3us(GLushort red, GLushort green, GLushort blue);
    void Color3usv(const GLushort *v);
    void Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
    void Color4bv(const GLbyte *v);
    void Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
    void Color4dv(const GLdouble *v);
    void Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    void Color4fv(const GLfloat *v);
    void Color4i(GLint red, GLint green, GLint blue, GLint alpha);
    void Color4iv(const GLint *v);
    void Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha);
    void Color4sv(const GLshort *v);
    void Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
    void Color4ubv(const GLubyte *v);
    void Color4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha);
    void Color4uiv(const GLuint *v);
    void Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha);
    void Color4usv(const GLushort *v);
    void ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
    void ColorMaterial(GLenum face, GLenum mode);
    void ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    void CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
    void CopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
    void CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
    void CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
    void CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    void CullFace(GLenum mode);
    void DeleteLists(GLuint list, GLsizei range);
    void DeleteTextures(GLsizei n, const GLuint *textures);
    void DepthFunc(GLenum func);
    void DepthMask(GLboolean flag);
    void DepthRange(GLclampd zNear, GLclampd zFar);
    void Disable(GLenum cap);
    void DisableClientState(GLenum array);
    void DrawArrays(GLenum mode, GLint first, GLsizei count);
    void DrawBuffer(GLenum mode);
    void DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
    void DrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
    void EdgeFlag(GLboolean flag);
    void EdgeFlagPointer(GLsizei stride, const GLvoid *pointer);
    void EdgeFlagv(const GLboolean *flag);
    void Enable(GLenum cap);
    void EnableClientState(GLenum array);
    void End(void);
    void EndList(void);
    void EvalCoord1d(GLdouble u);
    void EvalCoord1dv(const GLdouble *u);
    void EvalCoord1f(GLfloat u);
    void EvalCoord1fv(const GLfloat *u);
    void EvalCoord2d(GLdouble u, GLdouble v);
    void EvalCoord2dv(const GLdouble *u);
    void EvalCoord2f(GLfloat u, GLfloat v);
    void EvalCoord2fv(const GLfloat *u);
    void EvalMesh1(GLenum mode, GLint i1, GLint i2);
    void EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
    void EvalPoint1(GLint i);
    void EvalPoint2(GLint i, GLint j);
    void FeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer);
    void Finish(void);
    void Flush(void);
    void Fogf(GLenum pname, GLfloat param);
    void Fogfv(GLenum pname, const GLfloat *params);
    void Fogi(GLenum pname, GLint param);
    void Fogiv(GLenum pname, const GLint *params);
    void FrontFace(GLenum mode);
    void Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
    GLuint GenLists(GLsizei range);
    void GenTextures(GLsizei n, GLuint *textures);
    void GetBooleanv(GLenum pname, GLboolean *params);
    void GetClipPlane(GLenum plane, GLdouble *equation);
    void GetDoublev(GLenum pname, GLdouble *params);
    GLenum GetError(void);
    void GetFloatv(GLenum pname, GLfloat *params);
    void GetIntegerv(GLenum pname, GLint *params);
    void GetLightfv(GLenum light, GLenum pname, GLfloat *params);
    void GetLightiv(GLenum light, GLenum pname, GLint *params);
    void GetMapdv(GLenum target, GLenum query, GLdouble *v);
    void GetMapfv(GLenum target, GLenum query, GLfloat *v);
    void GetMapiv(GLenum target, GLenum query, GLint *v);
    void GetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
    void GetMaterialiv(GLenum face, GLenum pname, GLint *params);
    void GetPixelMapfv(GLenum map, GLfloat *values);
    void GetPixelMapuiv(GLenum map, GLuint *values);
    void GetPixelMapusv(GLenum map, GLushort *values);
    void GetPointerv(GLenum pname, GLvoid* *params);
    void GetPolygonStipple(GLubyte *mask);
    const GLubyte *GetString(GLenum name);
    void GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
    void GetTexEnviv(GLenum target, GLenum pname, GLint *params);
    void GetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
    void GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
    void GetTexGeniv(GLenum coord, GLenum pname, GLint *params);
    void GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
    void GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
    void GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
    void GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
    void GetTexParameteriv(GLenum target, GLenum pname, GLint *params);
    void Hint(GLenum target, GLenum mode);
    void IndexMask(GLuint mask);
    void IndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
    void Indexd(GLdouble c);
    void Indexdv(const GLdouble *c);
    void Indexf(GLfloat c);
    void Indexfv(const GLfloat *c);
    void Indexi(GLint c);
    void Indexiv(const GLint *c);
    void Indexs(GLshort c);
    void Indexsv(const GLshort *c);
    void Indexub(GLubyte c);
    void Indexubv(const GLubyte *c);
    void InitNames(void);
    void InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
    GLboolean IsEnabled(GLenum cap);
    GLboolean IsList(GLuint list);
    GLboolean IsTexture(GLuint texture);
    void LightModelf(GLenum pname, GLfloat param);
    void LightModelfv(GLenum pname, const GLfloat *params);
    void LightModeli(GLenum pname, GLint param);
    void LightModeliv(GLenum pname, const GLint *params);
    void Lightf(GLenum light, GLenum pname, GLfloat param);
    void Lightfv(GLenum light, GLenum pname, const GLfloat *params);
    void Lighti(GLenum light, GLenum pname, GLint param);
    void Lightiv(GLenum light, GLenum pname, const GLint *params);
    void LineStipple(GLint factor, GLushort pattern);
    void LineWidth(GLfloat width);
    void ListBase(GLuint base);
    void LoadIdentity(void);
    void LoadMatrixd(const GLdouble *m);
    void LoadMatrixf(const GLfloat *m);
    void LoadName(GLuint name);
    void LogicOp(GLenum opcode);
    void Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
    void Map1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
    void Map2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
    void Map2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
    void MapGrid1d(GLint un, GLdouble u1, GLdouble u2);
    void MapGrid1f(GLint un, GLfloat u1, GLfloat u2);
    void MapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
    void MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
    void Materialf(GLenum face, GLenum pname, GLfloat param);
    void Materialfv(GLenum face, GLenum pname, const GLfloat *params);
    void Materiali(GLenum face, GLenum pname, GLint param);
    void Materialiv(GLenum face, GLenum pname, const GLint *params);
    void MatrixMode(GLenum mode);
    void MultMatrixd(const GLdouble *m);
    void MultMatrixf(const GLfloat *m);
    void NewList(GLuint list, GLenum mode);
    void Normal3b(GLbyte nx, GLbyte ny, GLbyte nz);
    void Normal3bv(const GLbyte *v);
    void Normal3d(GLdouble nx, GLdouble ny, GLdouble nz);
    void Normal3dv(const GLdouble *v);
    void Normal3f(GLfloat nx, GLfloat ny, GLfloat nz);
    void Normal3fv(const GLfloat *v);
    void Normal3i(GLint nx, GLint ny, GLint nz);
    void Normal3iv(const GLint *v);
    void Normal3s(GLshort nx, GLshort ny, GLshort nz);
    void Normal3sv(const GLshort *v);
    void NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
    void Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
    void PassThrough(GLfloat token);
    void PixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
    void PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
    void PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
    void PixelStoref(GLenum pname, GLfloat param);
    void PixelStorei(GLenum pname, GLint param);
    void PixelTransferf(GLenum pname, GLfloat param);
    void PixelTransferi(GLenum pname, GLint param);
    void PixelZoom(GLfloat xfactor, GLfloat yfactor);
    void PointSize(GLfloat size);
    void PolygonMode(GLenum face, GLenum mode);
    void PolygonOffset(GLfloat factor, GLfloat units);
    void PolygonStipple(const GLubyte *mask);
    void PopAttrib(void);
    void PopClientAttrib(void);
    void PopMatrix(void);
    void PopName(void);
    void PrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities);
    void PushAttrib(GLbitfield mask);
    void PushClientAttrib(GLbitfield mask);
    void PushMatrix(void);
    void PushName(GLuint name);
    void RasterPos2d(GLdouble x, GLdouble y);
    void RasterPos2dv(const GLdouble *v);
    void RasterPos2f(GLfloat x, GLfloat y);
    void RasterPos2fv(const GLfloat *v);
    void RasterPos2i(GLint x, GLint y);
    void RasterPos2iv(const GLint *v);
    void RasterPos2s(GLshort x, GLshort y);
    void RasterPos2sv(const GLshort *v);
    void RasterPos3d(GLdouble x, GLdouble y, GLdouble z);
    void RasterPos3dv(const GLdouble *v);
    void RasterPos3f(GLfloat x, GLfloat y, GLfloat z);
    void RasterPos3fv(const GLfloat *v);
    void RasterPos3i(GLint x, GLint y, GLint z);
    void RasterPos3iv(const GLint *v);
    void RasterPos3s(GLshort x, GLshort y, GLshort z);
    void RasterPos3sv(const GLshort *v);
    void RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
    void RasterPos4dv(const GLdouble *v);
    void RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    void RasterPos4fv(const GLfloat *v);
    void RasterPos4i(GLint x, GLint y, GLint z, GLint w);
    void RasterPos4iv(const GLint *v);
    void RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w);
    void RasterPos4sv(const GLshort *v);
    void ReadBuffer(GLenum mode);
    void ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
    void Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
    void Rectdv(const GLdouble *v1, const GLdouble *v2);
    void Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
    void Rectfv(const GLfloat *v1, const GLfloat *v2);
    void Recti(GLint x1, GLint y1, GLint x2, GLint y2);
    void Rectiv(const GLint *v1, const GLint *v2);
    void Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
    void Rectsv(const GLshort *v1, const GLshort *v2);
    GLint RenderMode(GLenum mode);
    void Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
    void Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
    void Scaled(GLdouble x, GLdouble y, GLdouble z);
    void Scalef(GLfloat x, GLfloat y, GLfloat z);
    void Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
    void SelectBuffer(GLsizei size, GLuint *buffer);
    void ShadeModel(GLenum mode);
    void StencilFunc(GLenum func, GLint ref, GLuint mask);
    void StencilMask(GLuint mask);
    void StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
    void TexCoord1d(GLdouble s);
    void TexCoord1dv(const GLdouble *v);
    void TexCoord1f(GLfloat s);
    void TexCoord1fv(const GLfloat *v);
    void TexCoord1i(GLint s);
    void TexCoord1iv(const GLint *v);
    void TexCoord1s(GLshort s);
    void TexCoord1sv(const GLshort *v);
    void TexCoord2d(GLdouble s, GLdouble t);
    void TexCoord2dv(const GLdouble *v);
    void TexCoord2f(GLfloat s, GLfloat t);
    void TexCoord2fv(const GLfloat *v);
    void TexCoord2i(GLint s, GLint t);
    void TexCoord2iv(const GLint *v);
    void TexCoord2s(GLshort s, GLshort t);
    void TexCoord2sv(const GLshort *v);
    void TexCoord3d(GLdouble s, GLdouble t, GLdouble r);
    void TexCoord3dv(const GLdouble *v);
    void TexCoord3f(GLfloat s, GLfloat t, GLfloat r);
    void TexCoord3fv(const GLfloat *v);
    void TexCoord3i(GLint s, GLint t, GLint r);
    void TexCoord3iv(const GLint *v);
    void TexCoord3s(GLshort s, GLshort t, GLshort r);
    void TexCoord3sv(const GLshort *v);
    void TexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
    void TexCoord4dv(const GLdouble *v);
    void TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
    void TexCoord4fv(const GLfloat *v);
    void TexCoord4i(GLint s, GLint t, GLint r, GLint q);
    void TexCoord4iv(const GLint *v);
    void TexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q);
    void TexCoord4sv(const GLshort *v);
    void TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    void TexEnvf(GLenum target, GLenum pname, GLfloat param);
    void TexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
    void TexEnvi(GLenum target, GLenum pname, GLint param);
    void TexEnviv(GLenum target, GLenum pname, const GLint *params);
    void TexGend(GLenum coord, GLenum pname, GLdouble param);
    void TexGendv(GLenum coord, GLenum pname, const GLdouble *params);
    void TexGenf(GLenum coord, GLenum pname, GLfloat param);
    void TexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
    void TexGeni(GLenum coord, GLenum pname, GLint param);
    void TexGeniv(GLenum coord, GLenum pname, const GLint *params);
    void TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
    void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
    void TexParameterf(GLenum target, GLenum pname, GLfloat param);
    void TexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
    void TexParameteri(GLenum target, GLenum pname, GLint param);
    void TexParameteriv(GLenum target, GLenum pname, const GLint *params);
    void TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
    void TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
    void Translated(GLdouble x, GLdouble y, GLdouble z);
    void Translatef(GLfloat x, GLfloat y, GLfloat z);
    void Vertex2d(GLdouble x, GLdouble y);
    void Vertex2dv(const GLdouble *v);
    void Vertex2f(GLfloat x, GLfloat y);
    void Vertex2fv(const GLfloat *v);
    void Vertex2i(GLint x, GLint y);
    void Vertex2iv(const GLint *v);
    void Vertex2s(GLshort x, GLshort y);
    void Vertex2sv(const GLshort *v);
    void Vertex3d(GLdouble x, GLdouble y, GLdouble z);
    void Vertex3dv(const GLdouble *v);
    void Vertex3f(GLfloat x, GLfloat y, GLfloat z);
    void Vertex3fv(const GLfloat *v);
    void Vertex3i(GLint x, GLint y, GLint z);
    void Vertex3iv(const GLint *v);
    void Vertex3s(GLshort x, GLshort y, GLshort z);
    void Vertex3sv(const GLshort *v);
    void Vertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
    void Vertex4dv(const GLdouble *v);
    void Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    void Vertex4fv(const GLfloat *v);
    void Vertex4i(GLint x, GLint y, GLint z, GLint w);
    void Vertex4iv(const GLint *v);
    void Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
    void Vertex4sv(const GLshort *v);
    void VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
    void Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
};


// ******************************************************************

class GLU_2_D3D {
public:
    void Perspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
    int  Project(GLdouble objx, GLdouble objy, GLdouble objz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble *winx, GLdouble *winy, GLdouble *winz);
    int  Build2DMipmaps(GLenum target, GLint components, GLint width, GLint height, GLenum format, GLenum type, const void  *data);
};


// ******************************************************************

class WGL_2_D3D {
public:
    HGLRC CreateContext(HDC);
    HDC MakeCurrent(HDC, HGLRC);
    void DeleteContext(HGLRC);
};

#endif // _GL_2_D3D_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -