#ifndef __GEARSRC_GL_H__ #define __GEARSRC_GL_H__ #include #include #include #ifdef __cplusplus extern "C" { #endif #define GSGLMaxDistance 100.0 /* gl_shader.c */ GSDECL GSBool GSGLShaderPrepare(GSGL gl, GLuint* shader, const char* vs, const char* fs); /* gl_texture.c */ GSDECL void GSGLTextureLoad(GSGL gl, GLuint* texture, unsigned char* rgba, int width, int height); /* you probably don't want this. use GSGLTexturePrepare */ GSDECL void GSGLTextureSet(GSGL gl, GLuint texture); GSDECL void GSGLTextureDelete(GSGL gl, GLuint texture); /* gl_common.c */ GSDECL void GSGLTexturePrepareEx(GSGL gl, GLuint* texture, unsigned char* rgba, int width, int height, int expand); GSDECL void GSGLTexturePrepare(GSGL gl, GLuint* texture, unsigned char* rgba, int width, int height); GSDECL GSBool GSGLTextureLoadFile(GSGL gl, GLuint* texture, int* width, int* height, const char* filename); GSDECL GSBool GSGLTextureLoadFileEx(GSGL gl, GLuint* texture, int* width, int* height, const char* filename, int expand); GSDECL GSBool GSGLTextureTry(GSGL gl, GLuint* texture, int* width, int* height, const char* prefix); GSDECL GSBool GSGLTextureTryEx(GSGL gl, GLuint* texture, int* width, int* height, const char* prefix, int expand); GSDECL void GSGLTextBold(GSGL gl, GSBool bold); GSDECL void GSGLTextEx(GSGL gl, GSNumber x, GSNumber y, const char* text, GSNumber sx, GSNumber sy); GSDECL void GSGLText(GSGL gl, GSNumber x, GSNumber y, const char* text); GSDECL double GSGLTextWidth(GSGL gl, const char* text); GSDECL double GSGLTextHeight(GSGL gl, const char* text); GSDECL void GSGLTetrakis(GSGL gl, GSNumber scale, GSVector4 col1, GSVector4 col2); /* gl_shadow.c */ GSDECL void GSGLShadowInit(GSGL gl); GSDECL GSBool GSGLShadowBeforeMapping(GSGL gl); GSDECL void GSGLShadowAfterMapping(GSGL gl); GSDECL void GSGLShadowEnd(GSGL gl); GSDECL void GSGLShadowDeinit(GSGL gl); GSDECL void GSGLShadowDisable(GSGL gl); GSDECL void GSGLShadowEnable(GSGL gl); /* gl.c */ GSDECL GSGL GSGLCreate(GSClient client); GSDECL void GSGLDestroy(GSGL gl); GSDECL void GSGLClear(GSGL gl); GSDECL void GSGLIgnoreDepth(GSGL gl); GSDECL void GSGLCareDepth(GSGL gl); GSDECL void GSGLSetLight(GSGL gl); GSDECL void GSGLPolygon(GSGL gl, int pairs, GSVector3* vert, GSVector2* tex, GSVector3 norm); GSDECL void GSGLPolygon2D(GSGL gl, int pairs, GSVector2* vert, GSVector2* tex); GSDECL void GSGLBegin2D(GSGL gl); GSDECL void GSGLEnd2D(GSGL gl); GSDECL void GSGLSetPosition(GSGL gl, GSVector3 pos); GSDECL void GSGLSetRotation(GSGL gl, GSVector3 rot); GSDECL void GSGLPushMatrix(GSGL gl); GSDECL void GSGLPopMatrix(GSGL gl); GSDECL GLuint GSGLBeginList(GSGL gl); GSDECL void GSGLEndList(GSGL gl); GSDECL void GSGLCallList(GSGL gl, GLuint list); GSDECL void GSGLSetColor(GSGL gl, GSVector4 color); GSDECL void GSGLClearDepth(GSGL gl); GSDECL void GSGLInitialTranslation(GSGL gl); /* gl_camera.c */ GSDECL void GSGLCameraPerspective(GSGL gl, GSNumber width, GSNumber height); GSDECL void GSGLCameraSet(GSGL gl); GSDECL void GSGLCameraLookAt(GSGL gl, GSVector3 camera, GSVector3 look_at); GSDECL void GSGLCameraSetup(GSGL gl); #ifdef __cplusplus } #endif #endif